class SinglePoint(models.Model):
attributes = models.TextField(blank=True)
name = models.CharField(max_length=100)
geom = models.PointField() #Kartenposition
objects = models.GeoManager()
class Connection(models.Model):
name = models.CharField(max_length=100)
#points = models.ManyToManyField(SinglePoint) #OLD
p1 = models.ForeignKey(SinglePoint, related_name='p1_set') #NEW
p2 = models.ForeignKey(SinglePoint, related_name='p2_set') #NEW
obs = models.ManyToManyField(Observation, blank=True)
conds = models.ManyToManyField(Condition, blank=True)
objects = models.GeoManager()
class Meta:
order_with_respect_to = 'p1'
बनाने:Howto एक में 2 Django क्वेरीसमूहों विलय और मेरे view.py में एक का चयन करें DISTINCT
points = SinglePoint.objects.filter(connection__vektordata__order__project__slug=slug)
:
...
p1_points = SinglePoint.objects.filter(p1_set__vektordata__order__project__slug=slug)
p2_points = SinglePoint.objects.filter(p2_set__vektordata__order__project__slug=slug)
...
इससे पहले कि मैं ForeignKey का प्रयोग किया, यह के साथ काम किया
इन दो क्वेरीसेट्स को एक प्रश्नोत्तरी में कैसे शामिल करें और एक अलग() बनाएं?
धन्यवाद!
मैं डबल SinglePoint उदाहरणों के बिना मेरी परियोजना में सभी SinglePoint उदाहरणों प्राप्त करना चाहते हैं (अलग)। ManyToMany-Field के साथ कोई समस्या नहीं थी, क्योंकि तब मैंने उन्हें .filter (कनेक्शन__vektordata__ ...) के साथ एक्सेस किया। विशिष्ट() और अब मेरे पास दो फ़ील्ड हैं: .filter (p1_set__vektordata__ ... और .filter (p2_set__vektordata__ ...) –
क्षमा करें, मेरा मतलब है "फ़ील्ड्स" नहीं "फ़ील्ड" –
परिणाम = क्यू (पी 1_ पॉइंट्स) | क्यू (पी 2_ पॉइंट्स) परिणाम। बच्चे मुझे [[<सिंगलपॉइंट: ए>, <सिंगलपॉइंट: एक्स 1>], [<सिंगलपॉइंट: एक्स 1>, <सिंगलपॉइंट: एक्स 2>]] लेकिन मैं अलग-अलग कॉल करने के लिए [<सिंगलपॉइंट: ए>, <सिंगलपॉइंट: एक्स 1>, <सिंगलपॉइंट: एक्स 1>, <सिंगलपॉइंट: एक्स 2>] रखना चाहता हूं() –