python - 如何在 Django 中显示相关产品?
问题描述
我有大约 10 多个模型,我正在展示其中的 3 个。名字在哪里motors
,,,drum
。slide
现在在这三个模型中,一个字段是相同的,即名称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')
在上面,我在购物车中添加了一个产品项目,然后显示相关项目。怎么可能?
我怎样才能得到这两个相关的模型项目?
解决方案
您可以使用以下代码显示其他 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
我建议您使用模型之间的关系,因为您希望它是相关的。您可以根据需要使用一对一、多对一、多对多。