【发布时间】:2020-11-09 17:06:30
【问题描述】:
我正在使用 Django 管理面板,并且正在为电子商务网站的产品变体进行设置,我在我的数据库中为变体创建了多个表,这些表彼此相关。现在我想在管理面板中显示size和flavour,假设有3种尺寸small、medium和large那么它应该显示在我的Django管理面板的Size下拉列表中, 和 flavours 的相同过程,但现在所有 sizes 和 `flavors 都在一个下拉列表中,请检查我的代码,让我知道如何解决这个问题。
这是我的models.py 文件
class Variants(models.Model):
name=models.CharField(max_length=285, default=None)
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
这里是变体选项代码,它将存储variation table id
class VariantOptions(models.Model):
variant=models.ForeignKey('Variants', related_name='var_option', on_delete=models.CASCADE, null=True, blank=True)
name=models.CharField(max_length=285)
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
这是我的skuoption 表格代码
class SkuOption(models.Model):
product = models.ForeignKey('Product', null=True, blank=True, on_delete=models.CASCADE)
variantoption=models.ForeignKey('VariantOptions', related_name='sku_option', on_delete=models.CASCADE, null=True, blank=True)
sku=models.CharField(max_length=285, null=True, blank=True)
price=models.CharField(max_length=285, null=True, blank=True)
qty=models.CharField(max_length=285, null=True, blank=True)
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now=True)
def __str__(self):
return self.sku
这是我的admin.py 文件代码,我在其中为关系注册模型
class SkuOptionAdmin(admin.TabularInline):
fieldsets = [(None, {'fields':['sku','price','qty','variantoption']})]
model = SkuOption
我所有的variationoption 都在单个下拉列表中,但我希望size 和flavour 不同,并且会有2 个下拉列表,一个用于size,另一个用于flavour,以及这些选项将来自variant 和variantoption 表,所以请让我知道我可以在fieldsets = [(None, {'fields':['sku','price', 'qty','variantoption']})] 的 admin.py 文件中执行哪些代码,这样我就可以获得两个下拉列表。
如果您有新的建议,请与我分享。
【问题讨论】:
标签: django django-models django-views django-templates django-admin