Reputation: 470
Everything is working fine in my frontend, this problem is occurring when I'm trying to access the orders in my admin panel. In my console it also says:
cursor.close()
sqlite3.ProgrammingError: Cannot operate on a closed database.
I tried to figure out where the problem was, but failed. Why is this throwing an error? Can anyone please help me solve this problem? Thanks in advance!
My models.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
My 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)
Upvotes: 1
Views: 214
Reputation: 348
Please change the following models.py-
From:
def __str__(self):
return self.user.username
To:
def __str__(self):
return str(self.id)
Reason: It's better not to return __str__
method as foreign key for models. A conflict happens in case if username is None
, what'll then happen.
Upvotes: 2