【问题标题】:Cannot resolve keyword 'xxx' into field. Choices are: full_name, id, title无法将关键字“xxx”解析为字段。选项有:full_name、id、title
【发布时间】:2012-09-13 08:20:25
【问题描述】:

我的一门课程遇到一个奇怪的错误,我不知道为什么。

我有一个 Grade 模型:

class SchoolGrade(models.Model):
    title = models.CharField('Grade',max_length=10, null=True, blank=True)
    full_name = models.CharField('Description',max_length=100, null=True, blank=True)

    def __unicode__(self):
        return self.full_name

    class Meta:
        ordering = ('full_name',)

我还有一个视频模型:

class Video(models.Model):

    active = models.BooleanField(default=True)    
    title = models.CharField('Gallery Name',max_length=255, null=True, blank=True)
    seo = models.SlugField('SEO Field',max_length=255, null=True, blank=True)    
    description = models.TextField(null=True, blank=True)
    gender = models.CharField(choices=GENDERS, max_length=1, default='u', null=True, blank=True)
    ages = models.ManyToManyField(Age, related_name='videos', null=True, blank=True)
    grades = models.ManyToManyField(SchoolGrade, verbose_name='Grades', related_name='grade_videos', null=True, blank=True)

现在,问题是每当我尝试在管理员中打开任何视频时,都会收到异常错误:

FieldError at /admin/videos/video/150/
Cannot resolve keyword 'grade_videos' into field. Choices are: full_name, id, title

上面引用的 Age 模型与 SchoolGrade 模型一样简单:

class Age(models.Model):

    name = models.CharField(max_length=25, unique=True)
    slug = models.SlugField(null=True, blank=True)

    def __unicode__(self):
        return self.name

    class Meta:
        ordering = ('name',)

我在这个模型上没有任何错误,只有 SchoolGrade 模型。

最后,在 localhost 服务器上一切正常。这只发生在网络服务器上。 Python、数据库和 Django 版本都是相同的。

其他几个人遇到了这个错误,我尝试了他们的所有建议。我想我希望其他人可能会遇到我的确切问题。

提前谢谢你,

L.

年龄和年级

class AgeAdmin(admin.ModelAdmin):

    list_display = ('name','slug',)
    prepopulated_fields = {"slug" : ('name',)}

class SchoolGradesAdmin(admin.ModelAdmin):

    list_display = ('title','full_name',)


admin.site.register(Age, AgeAdmin)
admin.site.register(SchoolGrade, SchoolGradesAdmin)

视频

class VideoAdmin(admin.ModelAdmin):

    list_display = ('title','the_cats','the_grades','good_for','widget_name','active','featured','date_released')
    search_fields = ['title','description_markdown',]
    list_filter = ['active','featured','gender','grades','galleries','widget_name']
    prepopulated_fields = {"slug" : ('title',)}
    fieldsets = [
        (None, {'fields': (('active','featured'),'display_order', ('title', 'slug'),'grades','galleries',('gender', 'gender_scale'),'widget_name','good_for','quiz','description_markdown','why_like_markdown')}),
    ]
    formfield_overrides = {
        WYWIWYGField: {'widget': TinyMCE(attrs={'cols': 100, 'rows': 30})},
    }
    inlines = [VideoRankingInline, VideoAssetsInline]

admin.site.register(Video, VideoAdmin)

【问题讨论】:

  • 我刚刚发布了它,Rakesh。检查一下,让我知道你的想法。谢谢!

标签: django django-models django-admin python-2.7


【解决方案1】:

嗯,也许你忘了运行数据库迁移?

您可以通过在网络服务器上执行python manage.py migrate --list 来检查

【讨论】:

  • 感谢您的回复。我运行了你给出的迁移命令,(我正在运行 South。),一切都检查出来了。我运行了所有的迁移。
【解决方案2】:

答案是使用完全不同的名称从头开始重新创建 SchoolGrade 模型。很奇怪。

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 2021-11-04
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    • 2019-09-08
    • 1970-01-01
    相关资源
    最近更新 更多