每当我试图从django admin访问我的模型“Youtube”时,它都会显示这个错误。我感觉到我在YoutubeAdmin
方法中把它搞砸了。我怎样才能解决这个问题?找不到办法。它在错误中显示model Youtube doesn't have a filed getCountry
我的型号:
class Youtube(models.Model):
link = models.CharField(max_length=2000)
scrap_interval_hour = models.IntegerField(default=8)
last_scrapped_datetime = models.DateTimeField(blank=True, null=True)
is_feed = models.BooleanField(default=False)
created_date = models.DateField(
auto_now_add=True)
# Foriegn Key
country = models.ForeignKey(Country, on_delete=models.CASCADE)
class Meta:
ordering = ('created_date', )
管理
from django.contrib import admin
from fpn.models import Youtube
from datetime import timedelta
class YoutubeAdmin(admin.ModelAdmin):
def get_fields(self, request, youtube=None):
fields = super(YoutubeAdmin, self).get_fields(request, youtube)
fields.remove('last_scrapped_datetime')
if youtube:
fields.remove('country')
return fields
model = Youtube
list_per_page = 10
list_display = ('link', 'is_feed',
'getCountry', 'last_scrapped_datetime')
list_filter = ('country', 'is_feed', )
def getCountry(self, obj):
return "\n".join([coun.name for coun in obj.country.all()])
ForeignKey
创建多对一关系。这意味着对于一个国家,你可以拥有许多Youtube对象。但反过来说,一个Youtube对象只能有一个国家因此,在您的情况下,您无法从youtube对象查询国家列表。因为它只有一个相关国家,您可以直接访问:
相关问题 更多 >
编程相关推荐