मैं अपने मॉडल में एक क्षेत्र टकराव हो रही है:Django related_name संघर्ष
class Visit(models.Model):
user = models.ForeignKey(User)
visitor = models.ForeignKey(User)
Error: One or more models did not validate:
profiles.visit: Accessor for field 'user' clashes with related field 'User.visit_set'. Add a related_name argument to the definition for 'user'.
profiles.visit: Accessor for field 'visitor' clashes with related field 'User.visit_set'. Add a related_name argument to the definition for 'visitor'.
क्या एक समझदार 'related_field' आगंतुक मैदान पर उपयोग करने के लिए हो सकता है? यह मॉडल मूल रूप से उन विज़िट का प्रतिनिधित्व करता है जो पर विशेष उपयोगकर्ता की प्रोफ़ाइल पर होते हैं।
क्या मुझे किसी भी विदेशीकी को कईToManyField के साथ प्रतिस्थापित करना चाहिए? तर्क थोड़ा उलझन में है।
संपादित करें: ऐसा लगता है कि यह ठीक है, लेकिन मुझे यकीन है कि यह वही है जो मैं चाहता हूं। :)
class Visit(models.Model):
user = models.ForeignKey(User)
visitor = models.ForeignKey(User, related_name='visitors')
पैडेंटिक होने के लिए, शायद डीजेगो के नामकरण सम्मेलनों का पालन करना बेहतर होगा। इसलिए, 'विज़िटएएसयूसर "' 'visit_as_user" जैसी कुछ होगी। मैं व्यक्तिगत रूप से 'user_visits" पसंद करूंगा, लेकिन यह सिर्फ व्यक्तिगत वरीयता है। – Johndt6
Django के सम्मेलनों का पालन करने से भी अजीब लगने से व्यवस्थापक में चीज़ें रहती हैं। लेकिन मेरे पास बहुत सारे कोड थे जो उस समय ऊंट केस सम्मेलन का इस्तेमाल करते थे, इसलिए आदत खत्म हो गई। –
बस सोचा कि यह उल्लेख करने लायक था :) नामकरण सम्मेलन न केवल दर्शकों के लिए आसान बनाता है, लेकिन लेखक स्वयं कोड पढ़ने के लिए आसान बनाता है। – Johndt6