समस्या: मुद्दा मैं चयन मॉडल के भीतर विकल्प का मूल्य हो रही है हो रहा है। ऐसा इसलिए है क्योंकि, अन्य विकल्प एक ही कार्ट के भीतर भी हैं, कुल उत्पन्न करने के लिए अलग-अलग कीमतों का उपयोग किया जाएगा। मैं, एक क्वेरीसमूह कि मुझे विकल्प की कीमत हो जाता है साथ मदद की जरूरत है, तो विकल्प एक effector_option है कि अपने आप में एक ही गाड़ी के भीतर है इस्तेमाल किया है कि, नहीं तो एक ही विकल्प क्षेत्र सेट के साथ रूपांतर का उपयोग करें। वहाँ कई धारा एक पृष्ठ पर हो सकता हैDjango: यदि वस्तु (else if) क्वेरीसमूह में मौजूद है जाँच हो रही है
class Section(models.Model):
title = models.CharField(max_length=20)
description = models.CharField(max_length=100)
temp = models.ForeignKey(TempName, null=False)
def __str__(self):
return self.title
def get_options(self):
return self.option_set.all()
class Option(models.Model):
name = models.CharField(max_length=120)
section = models.ForeignKey(Section, null=False)
def __str__(self):
return self.name
def get_variations(self):
return self.variation_set.all()
class Variation(models.Model):
name = models.CharField(max_length=60, blank=True, unique=True)
price = models.DecimalField(max_digits=5, decimal_places=2)
option = models.ForeignKey(Option, null=False)
effector_option = models.ForeignKey(Option, null=True, blank=True, related_name='option_effected')
def __str__(self):
return self.name
:
TempName अनुप्रयोग मॉडल के होते हैं। प्रत्येक धारा में कई विकल्प शामिल हो सकते हैं जो बाद में उपयोगकर्ता द्वारा चयन योग्य होगा। चयनित विकल्प कार्ट में जाएगा जो कुल मूल्य उत्पन्न करने के लिए उपयोग किया जाएगा।
भीतर रूपांतर मॉडल, क्षेत्र विकल्प बस मुझसे कहता है जो विकल्प रूपांतर के अंतर्गत आता है। effector_optionके भीतर क्षेत्र Varaition मॉडल हालांकि कार्ट द्वारा उपयोग किया जाएगा।
उपयोगकर्ता, विकल्प के किसी भी संख्या को चुनने के लिए अनुमति दी जाएगी लेकिन, पर विकल्प उपयोगकर्ता चयनित निर्भर करता है, अन्य विकल्प रूपांतर कीमत जहां effector_option पहले से चयनित किया गया था प्रदर्शित कर सकता है। गाड़ी कई विकल्प जो उपयोगकर्ता का चयन किया है शामिल कर सकते हैं
class Cart(models.Model):
owner = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True)
creation_date = models.DateTimeField(verbose_name='creation date')
checked_out = models.BooleanField(default=False, verbose_name='checked out')
class Meta:
verbose_name = 'cart'
verbose_name_plural = 'carts'
ordering = ('-creation_date',)
def __str__(self):
return unicode(self.creation_date)
def get_selections(self):
return self.selection_set.all()
class Selection(models.Model):
cart = models.ForeignKey(Cart)
option = models.ForeignKey(Option)
@property
def price(self):
return 10
:
कार्ट अनुप्रयोग मॉडल के होते हैं। प्रत्येक चयन में एक मूल्य संपत्ति होगी जिसका उपयोग उपयोगकर्ता को उस व्यक्तिगत चयन की कीमत दिखाने के लिए किया जा सकता है, जिस पर विकल्प एक ही कार्ट में है।
मैं क्या प्रयास किया है:
विकल्प के सभी रूपों प्राप्त करें। फिर प्रत्येक भिन्नता के माध्यम से लूप करें और जांचें कि Variation.effector_option उसी कार्ट के भीतर निहित है या नहीं। यदि ऐसा मूल्य प्रदर्शित होता है, अन्यथा भिन्नता के भीतर मूल्य प्रदर्शित करें जहां Variation.effector_option शून्य/सेट नहीं है।
मुझे जो मिला वह यह था कि कार्ट में प्रत्येक चयन के लिए 26 से अधिक प्रश्न पूछे जा रहे थे। क्या इस डीबी स्कीमा को अधिक सामान्यीकृत करने की आवश्यकता है या क्या यह इस सरल परियोजना के लिए पर्याप्त है?
क्वेरी (क्वेरीसेट ऑपरेटर) और लूप नहीं के बारे में पढ़ें। – philipxy
@philipxy हाँ मैंने ऐसा किया है, हालांकि मेरे पास जो समस्या है, वह एक क्वेरीसेट से पूछताछ कर रहा है, फिर क्वेरी के परिणामस्वरूप पूछताछ करें। बीमारों ने फिर से दस्तावेज़ों के उस हिस्से के माध्यम से एक और पढ़ा है, शायद मुझे कुछ याद आ गया है। –
Google 'stackoverflow.com django अन्य क्वेरी का क्वेरी परिणाम'। – philipxy