为了账号安全,请及时绑定邮箱和手机立即绑定

Django:“国家”对象没有“全部”属性

Django:“国家”对象没有“全部”属性

牛魔王的故事 2022-07-19 16:30:43
每当我尝试从 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


查看完整回答
反对 回复 2022-07-19
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信