AttributeError в / admin / orders2 / order / 11 / change / объект 'NoneType' не имеет атрибута 'username' - PullRequest
0 голосов
/ 01 мая 2020

В моем интерфейсе все работает нормально, эта проблема возникает, когда я пытаюсь получить доступ к заказам в моей панели администратора. В моей консоли также написано:

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

Мои admin.py:

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 Ответ

1 голос
/ 01 мая 2020

Пожалуйста, измените следующие models.py-

С:

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

Кому:

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

Причина: Лучше нет вернуть метод __str__ в качестве внешнего ключа для моделей. Конфликт происходит в случае if username is None, что тогда произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...