迁移到新的 Django,我收到此错误。我的模型:
class TourRoute(models.Model):
tour = models.ForeignKey(Tour, verbose_name=_(u'tour'), db_index=True)
country = models.ForeignKey(Country, verbose_name=_(u'country'),
db_index=True)
class Tour(models.Model):
category = models.ForeignKey(TourCategory, verbose_name=_(u'tour type'),
null=True, blank=True)
kind = models.ForeignKey(TourKind, verbose_name=_(u'tour kind'), null=True,
blank=True, default=1)
tour_class = models.ForeignKey(TourClass, verbose_name=_(u'class'),
null=True)
type = models.ForeignKey(TourType, verbose_name=_(u'tour type'),
null=True, blank=True)
...
在views.py中:
country_tours = Tour.objects.filter(tourroute__country__link=country.link)
在traceback django中看到这个字段( iraceback image ): 无法将关键字“tourroute”解析为字段。选项有: Accommodation_note、... 旅游路线、...
我尝试:
- 添加 related_name(两个回溯位置的tourroute 均更改为 related_name 值)
- 删除所有表并在 MySQL/PostgreSQL 上创建新数据库
- 更改替换我的 django(在同一服务器上的另一个项目中工作,没有此错误)
最佳答案
似乎缺少一个_set
,应该是:
country_tours = Tour.objects.filter(tourroute_set__country__link=country.link)
或者更好的是,向模型添加相关名称,以使其更具可读性
class TourRoute(models.Model):
tour = models.ForeignKey(Tour, verbose_name=_(u'tour'),
db_index=True, related_name='routes')
所以你可以这样做
country_tours = Tour.objects.filter(routes__country__link=country.link)
关于python - Django -> 无法解析关键字错误,但字段位于回溯中的选项中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37229138/