estoy recibiendo un choque en el campo de mis modelos:related_name Django para el campo choca
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'.
lo que sería un 'related_field' razonable utilizar en el campo de visitante? Este modelo básicamente representa las visitas que tienen lugar a un perfil de usuario particular de .
¿También debería reemplazar alguna de las ForeignKey con ManyToManyField? La lógica es un poco confusa.
Editar: Esto parece solucionarlo, pero no estoy seguro si es lo que quiero. :)
class Visit(models.Model):
user = models.ForeignKey(User)
visitor = models.ForeignKey(User, related_name='visitors')
Para ser pedante, probablemente sería mejor adherirse a las convenciones de nombres de Django. Entonces, '" visitsAsUser "' sería algo así como '" visits_as_user "'. Yo personalmente preferiría '" user_visits "', pero eso es solo preferencia personal. – Johndt6
La adhesión a las convenciones de Django también evita que las cosas en el administrador parezcan divertidas. Pero tenía un montón de código que usaba la convención de casos de camello en ese momento, por lo que el hábito se hizo cargo. –
Simplemente pensé que valía la pena mencionarlo :) Convenciones de nombres hace que sea más fácil no solo para el público, sino también para la autora leer el código. – Johndt6