每當我嘗試從 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 adminfrom fpn.models import Youtubefrom datetime import timedeltaclass 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()])
1 回答

烙印99
TA貢獻1829條經驗 獲得超13個贊
ForeignKey創建多對一關系。這意味著對于一個國家/地區,您可以擁有許多 Youtube 對象。但不能反過來,一個 Youtube 對象只能有一個國家。
因此,在您的情況下,您無法從 youtube 對象中查詢國家/地區列表。由于它只有一個您可以直接訪問的相關國家:
def getCountry(self, obj):
return obj.country.name
添加回答
舉報
0/150
提交
取消