【发布时间】:2021-12-29 07:00:25
【问题描述】:
当我尝试从订单模型中检索所有购物车项目然后单击以打开购物车模型编辑页面但我只有第一个购物车项目所以我的代码有什么问题
管理模式
class OrderAdmin(admin.ModelAdmin):
list_display = ('user', 'total_price', 'ordered',
'get_address', 'get_cart')
def get_cart(self, obj):
for p in obj.items.all():
app_label = p._meta.app_label
model_label = p._meta.model_name
url = reverse(
f'admin:{app_label}_{model_label}_change', args=(p.id,)
)
return mark_safe(f'<a href="{url}">{p.item}</a>')
get_cart.allow_tags = True
get_cart.short_description = "Cart"
订单模式
class Order(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
items = models.ManyToManyField(CartItem,)
ordered = models.BooleanField(default=False)
total_price = models.FloatField(default=0)
start_date = models.DateTimeField(auto_now_add=True)
payment_id = models.CharField(null=True, blank=True, max_length=100)
ordered_date = models.DateTimeField()
address = models.ForeignKey(
Address, on_delete=models.DO_NOTHING, blank=True, null=True)
class Meta:
ordering = ['-ordered_date']
def __str__(self):
return str(self.user.username) + ' '+str(self.total_price)
def user_link(self):
return '<a href="%s">%s</a>' % (reverse("admin:auth_user_change", args=(self.user.id,)), escape(self.user))
【问题讨论】:
标签: python django django-admin