每当我尝试从 django admin 访问我的模型“Youtube”时,它都会向我显示此错误。我感觉我在YoutubeAdmin
,getCountry
方法中搞砸了。我该如何解决这个问题?找不到办法。它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 对象查询国家/地区列表。由于它只有一个您可以直接访问的相关国家:
def getCountry(self, obj):
return obj.country.name
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句