/ admin / orders2 / order / 11 / change /的AttributeError'NoneType'对象没有属性'username'

时间:2020-05-01 15:41:47

标签: python django

我的前端一切正常,当我尝试访问管理面板中的订单时出现此问题。在我的控制台中,它还显示:

cursor.close() sqlite3.ProgrammingError: Cannot operate on a closed database.

我试图找出问题出在哪里,但是失败了。为什么这会引发错误? 谁能帮我解决这个问题?预先感谢!

我的模型。py:

class Order(models.Model):
   user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
   ref_code = models.CharField(max_length=20)
   ordered = models.BooleanField(default=False)

   def __str__(self):
       return self.user.username

我的管理员:

class OrderAdmin(admin.ModelAdmin):
    list_display = ['user', 'ordered', 'being_delivered', 'received', 'refund_requested',
    'refund_granted', 'shipping_address', 'billing_address', 'payment', 'coupon']
    list_filter = ['ordered', 'being_delivered', 'received', 'refund_requested', 'refund_granted']
    list_display_links = ['user', 'shipping_address', 'billing_address', 'payment', 'coupon']
    search_fields = ['user__username', 'ref_code']

admin.site.register(Order, OrderAdmin)

1 个答案:

答案 0 :(得分:1)

请更改以下型号。py-

发件人:

def __str__(self):
   return self.user.username

收件人:

def __str__(self):
    return str(self.id)

原因:最好不要将__str__方法作为模型的外键返回。如果发生if username is None冲突,那么将会发生什么。