我正在为一个小型企业的朋友创建一个网站,对于每个用户,我希望他们能够按编号访问他们的订单,从每个用户的1开始,但在后端这应该是全球编号。因此,对于每个用户,他们的第一个订单将在/orders/1/
,依此类推。关于如何实现这一目标是否达成共识?我看到它的方式,我可以做两种方式:
将号码存储在订单表的另一列中。我不想这样做,因为我不完全确定如何处理删除而不经过并更新用户的所有记录。如果有人知道我需要处理的边缘情况,我可能会这样做。
OR
对于我在获取每个用户的订单页面时所做的每个查询集我处理编号,这样做的好处是它总能给出正确的编号,特别是如果我只是在模板中进行编号。现在这似乎更容易,但我觉得这会在将来引起问题。我看到的主要问题是我不确定如何在没有主键的情况下将其链接到正确的URL。
答案 0 :(得分:0)
我建议您将MyUser存储在一个单独的应用中,比如说帐户
class MyUser(BaseUser):
# extra fields
将Order存储在一个单独的应用程序中,比如命令
from accounts.models import MyUser
class Order(models.Model):
user = models.ForeignKey(MyUser)
order_num = models.IntegerField()
# other fields
按照用户订单的计数继续更新此order_num。 得到数, count = Order.objects.filter(user == request.user).count()