0

クラスの1つで奇妙なエラーが発生しましたが、その理由がわかりません。

私はグレードモデルを持っています:

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モデルのみです。

最後に、ローカルホストサーバーではすべてが正常に機能します。これはWebサーバーでのみ発生します。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

うーん、データベースの移行を実行するのを忘れたのではないでしょうか。

python manage.py migrate --listWebサーバーでを実行して確認できます

于 2012-09-21T04:47:50.853 に答える
0

答えは、SchoolGradeモデルを完全に異なる名前で最初から再作成することでした。非常に奇妙な。

于 2012-10-01T17:11:52.730 に答える