首页 > 解决方案 > 如何在 Django 中显示相关产品?

问题描述

我有大约 10 多个模型,我正在展示其中的 3 个。名字在哪里motors,,,drumslide现在在这三个模型中,一个字段是相同的,即名称code

试图解释:

模型.py

class Motors(models.Model):
    .
    .
    code = models.CharField(max_length=10)
    .
    .
    .

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

class Drum(models.Model):
    .
    .
    code = models.CharField(max_length=10)
    .
    .
    .

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

class Sliders(models.Model):
    .
    .
    code = models.CharField(max_length=10)
    .
    .
    .

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

现在在上述模型中,它们具有与 相同的字段code。在 中code,它们具有相同的名称,例如:在一个模型中,代码是DD1, DD2, DD3,另一个模型代码是DD1, DD2, DD3

现在在上面,代码是匹配的。因此,如果用户选择了一个带有Code DD1. 然后用代码显示相关的2个模型,DD1或者如果用户选择一个带代码的鼓DD1。然后在Django中显示相关的两个模型项

我曾使用添加到购物车功能的代码在这里。

视图.py

def addProductMotor(request):
    user = request.user
    motor_id = request.GET.get('motor_id')
    motor_cart = Motor.objects.get(id=motor_id)
    Cart(user=user, motor=motor_cart).save()
    return redirect('main:index')

在上面,我在购物车中添加了一个产品项目,然后显示相关项目。怎么可能?

我怎样才能得到这两个相关的模型项目?

标签: pythondjangodjango-modelsdjango-viewsdjango-templates

解决方案


您可以使用以下代码显示其他 2 个模型对象 -

motor_cart = Motor.objects.get(id=motor_id)  # get motor object
code = motor_cart.code                       # get code from the model
drum = Drum.objects.get(code=code)           # get drum from the code
sliders = Sliders.objects.get(code=code)     # get sliders from the code

我建议您使用模型之间的关系,因为您希望它是相关的。您可以根据需要使用一对一多对一多对多

你会在Django 文档中找到更多信息


推荐阅读