jestem coraz starcia pola w moich modelach:Django related_name na polu ściera
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'.
co byłoby sensowne „related_field” do wykorzystania na polu zwiedzających? Ten model zasadniczo reprezentuje wizyty, które odbywają się w profilu konkretnego użytkownika określonego w .
Czy powinienem również wymienić dowolny z kluczy ForeignKey na ManyToManyField? Logika jest trochę zagmatwana.
Edytuj: To wydaje się naprawić, ale nie jestem pewien, czy to jest to, co chcę. :)
class Visit(models.Model):
user = models.ForeignKey(User)
visitor = models.ForeignKey(User, related_name='visitors')
Aby być pedantycznym, lepiej byłoby stosować się do konwencji nazewnictwa Django. A zatem '" visitAsUser "' byłoby czymś w stylu '' odwiedzający_użytkownik "'. Osobiście wolałbym '" user_visits "', ale to tylko osobiste preferencje. – Johndt6
Przestrzeganie konwencji Django sprawia, że rzeczy w administracji wyglądają śmiesznie. Ale miałem dużo kodu, który korzystał z konwencji wielbłąda w tym czasie, więc nawyk przejął kontrolę. –
Pomyślałem, że warto o tym wspomnieć :) Konwencje nazewnictwa ułatwiają nie tylko odbiorcom, ale i autorom czytanie kodu. – Johndt6