Ich aktualisiere das Projekt von Django 1.6.7 bis 1.8.7 und ich habe folgende Ausnahme mit Django 1.8, obwohl mit Django 1.6 es Code war rechts: Update Django von 1.6 bis 1.8: Ungültige Feldname (n) in select_related
In[2]: from apps.route import models
In[3]: models.Trace.objects.select_related("trace_points")
Out[3]: <repr(<django.db.models.query.QuerySet at 0x3b50c10>) failed: django.core.exceptions.FieldError: Invalid field name(s) given in select_related: 'trace_points'. Choices are: user>
Meine Modelle:
class Trace(SocialMixin, models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='traces')
name = models.CharField(u'Название', max_length=255)
rating = RatingField(range=5, weight=0)
start_date = models.DateTimeField(u'Дата старта')
finish_date = models.DateTimeField(u'Дата окончания', null=True, blank=True)
distance = models.DecimalField(max_digits=15, decimal_places=6, null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
hits = generic.GenericRelation(HitCount, object_id_field='object_pk')
description = models.TextField(null=True, blank=True)
class TracePoint(models.Model):
country = models.ForeignKey(Country, null=True, blank=True)
city = models.ForeignKey(City, null=True, blank=True)
trace = models.ForeignKey(Trace, related_name="trace_points")
ich habe auch diesen Fehler in Detailview auf Trace verwendet Detailview get_related_selections, und natürlich bekam ich "FieldError: ungültigen Feldnamen ...", zu Fehler vermeiden Ich muss ManyToManyField anstelle von ForeigenKey verwenden?
Der Code in '[3]' macht keinen Sinn, da mehr als ein 'TracePoint' mit einem' Trace' verknüpft sein kann. –
Ja, es kann mehr TracePoint geben als einer, der mit einem Trace verknüpft ist, aber im alten Django hat es wirklich funktioniert ... – Petr
Das wäre dann ein Bug in der alten Version. –