2010-05-21 14 views
15

मान लीजिए, मैं हर रोज उपयोगकर्ताओं द्वारा मतदान विकल्पों को रिकॉर्ड करना चाहता हूं। इस मामले में, मेरे पास vote नाम की एक तालिका है जिसमें कॉलम poll, choice और user-id हैं। तो मैं बाधा से बाहर कैसे हो सकता हूं (शायद डीजेंगो मॉडल या जहां भी संभव हो) poll और user-id दोनों किसी भी प्रविष्टि के लिए समान नहीं होना चाहिए, लेकिन एक ही उपयोगकर्ता एक बार विभिन्न अलग-अलग चुनावों के लिए मतदान कर सकता है और स्पष्ट रूप से विभिन्न उपयोगकर्ता वोट दे सकते हैं एक ही मतदान मुझे आशा है कि मैं स्पष्ट हूं। अधिक जानकारी के लिएDjango - 2 या अधिक फ़ील्ड के लिए एक अद्वितीय डेटाबेस बाधा बनाएं

class Meta: 
    unique_together = ('poll', 'user_id') 

चेक django docs:

+0

संभव डुप्लिकेट (http://stackoverflow.com/questions/2201598/how-to-define-two [कैसे दो क्षेत्रों जोड़ी के रूप में "अद्वितीय" को परिभाषित करने के] -फील्ड-अद्वितीय-जोड़े-जोड़े) – ecampver

उत्तर

26

अपने मॉडल के Meta वर्ग के unique_together विशेषता आप के लिए क्या देख रहे है।

+1

आपको दो करीबी कोष्ठक के बीच एक अल्पविराम की आवश्यकता होगी, मुझे लगता है कि 'unique_together = ((' poll ',' user_id '),) '। –

+0

ओह हाँ ... धन्यवाद – sebpiq

+0

दरअसल इसकी आवश्यकता नहीं है: https://docs.djangoproject.com/en/dev/ref/models/options/#unique-together – dialex

0

आप unique_together विशेषता हैं: https://docs.djangoproject.com/en/dev/ref/models/options/#unique-together

की
+0

जहां तक ​​मुझे पता है, आप एक संपादन का सुझाव दे सकते हैं यह जवाब अगर यह आपको किसी भी तरह से खुश नहीं करता है। तब स्वीकार किया जाएगा, मान लीजिए कि आपका सुझाया गया संपादन बकवास नहीं है, और आपने दुनिया को कुछ सकारात्मक योगदान दिया होगा। [स्वीकृत उत्तर] (http://stackoverflow.com/a/2881073/111777) 3 साल पुराना उत्तर कम करना अभी भी थोड़ा अनावश्यक लगता है, लेकिन मुझे लगता है कि यह आपका विशेषाधिकार है। –

+0

आपको उस उत्तर से सहमत होना है कि लिंक के साथ सिर्फ एक वाक्य है और यह लिंक टूटा हुआ है वास्तव में अच्छा जवाब नहीं है, है ना? :) इसके विपरीत वहाँ एक है जो acceptect है और लिंक सही है। यही कारण है कि मैं एक दूसरे को महत्व देता हूं जो मैं नहीं करता हूं। – Drachenfels

संबंधित मुद्दे