I’m getting a strange error for one of my classes and I don’t know why.
I have a Grade model:
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',)
I also have a Videos model:
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)
Now, the problem is that whenever I try to open ANY video in the Admin, I get the exception error:
FieldError at /admin/videos/video/150/
Cannot resolve keyword 'grade_videos' into field. Choices are: full_name, id, title
The Age model referenced above is just as simple as the SchoolGrade model is:
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',)
I don’t get any errors on this model, ONLY the SchoolGrade model.
Lastly, everything works fine on the localhost server. This only occurs on the webserver. The Python, database and Django versions are all identical.
Several others had this error and I tried all of their suggestions. I guess I was hoping someone else might have had my exact problem.
Thank you in advance,
L.
Age & SchoolGrade
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)
Video
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)
The answer was to just recreate the SchoolGrade model from scratch with a completely different name. Very strange.