【发布时间】:2020-01-01 07:14:06
【问题描述】:
我正在为一个电子商务市场网站设计 django 模型,用户可以在该网站上购买 4 种类型的产品。就像我有 4 种类型的差异模型一样。
衣服
class Merchandise(models.Model):
adOwner = models.ForeignKey(VendorProfile, on_delete=models.CASCADE)
imagesMerchandise = models.ManyToManyField(merchandiseImages)
productName = models.CharField(max_length=50, null=False, blank=False)
price = models.IntegerField()
availableQuality=models.IntegerField()
color=models.CharField(max_length=20, null=False, blank=False)
size = models.CharField(max_length=50 , null=False , blank=False)
description=models.CharField(max_length=250 , null=False , blank=False)
is_approved = models.BooleanField(default=False)
def __str__(self):
return str(self.productName)
租车
class Vehicle(models.Model):
adOwner=models.ForeignKey(VendorProfile, on_delete=models.CASCADE)
carImages=models.ManyToManyField(Image)
make=models.CharField(max_length=50, null=False, blank=False)
modelName=models.CharField(max_length=50, null=False, blank=False)
registrationNumber=models.CharField(max_length=50, null=False, blank=False)
modelYear=models.CharField(max_length=50, null=False, blank=False)
modelColor=models.CharField(max_length=50, null=False, blank=False)
carType=models.CharField(max_length=50, null=False, blank=False)
fuelMileage=models.CharField(max_length=50, null=False, blank=False)
SeatingCapacity=models.CharField(max_length=50, null=False, blank=False)
vehicleCondition=models.CharField(max_length=50, null=False, blank=False)
fuelType=models.CharField(max_length=50, null=False, blank=False)
price=models.CharField(max_length=50, null=False, blank=False)
description=models.CharField(max_length=500, null=True, blank=True)
registerIn=models.CharField(max_length=500, null=True, blank=True)
is_approved = models.BooleanField(default=False)
def __str__(self):
return str(self.modelName)
预订酒店
class Accommodation(models.Model):
adOwner = models.ForeignKey(VendorProfile, on_delete=models.CASCADE)
hotleImages = models.ManyToManyField(HotleImages)
accommodationTitle=models.CharField(max_length=150)
location = models.CharField(max_length=150)
accommodationName = models.CharField(max_length=150)
checkIn = models.TimeField()
checkOut = models.TimeField()
# accessibility = models.CharField(max_length=20, null=False, blank=False)
address = models.CharField(max_length=150)
pets = models.CharField(max_length=150)
child = models.CharField(max_length=150)
is_approved = models.BooleanField(default=False)
创建活动
class ActivityOrganizer(models.Model):
adOwner = models.ForeignKey(VendorProfile, on_delete=models.CASCADE)
activityImage = models.ManyToManyField(ActivityImage)
activityName = models.CharField(max_length=50 , null=False, blank=False)
activityId = models.CharField(max_length=20, null=False, blank=False)
ageSuggestion = models.CharField(max_length=20, null=True, blank=True)
duration = models.CharField(max_length=20, null=False, blank=False)
openTime = models.TimeField()
closeTime=models.TimeField()
expiryDate = models.DateField()
availableQty = models.IntegerField()
price = models.IntegerField()
needToBring = models.CharField(max_length=50 , null=True , blank=True)
personsAllowOnOneTicket = models.IntegerField()
location = models.CharField(max_length=50 , null=True , blank=False)
specialNotes = models.CharField(max_length=250 ,null=True , blank=True)
description = models.CharField(max_length=250 , null=True , blank=True)
is_approved = models.BooleanField(default=False)
现在我做了一个这样的订单表
class Orders(models.Model):
order_number = models.AutoField(primary_key=True)
total_amount = models.DecimalField(max_digits=10, decimal_places=2)
ordertime = models.DateTimeField(auto_now_add=True)
user_note=models.CharField(max_length=150 , null=True, blank=True)
address=models.CharField(max_length=150 , null=True, blank=True)
order_status = models.CharField(choices=STATUS , max_length=50)
payment_status=models.BooleanField(default=0)
现在我很困惑如何将所有这 4 个类别绑定到我的订单对象。如果它是单一类别的,我可以简单地使用订单模型创建一个外键。但是我如何绑定所有这些(因为用户可以选择 1,2,3,4 个类别)所以如果用户选择住宿和车辆类别产品,我如何在外键中保存 2 个类别为空。任何帮助将不胜感激。谢谢
【问题讨论】:
标签: python django django-models