0

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

我有一个等级模型:

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)
4

2 回答 2

0

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

于 2012-10-01T17:11:52.730 回答
0

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

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

于 2012-09-21T04:47:50.853 回答