【发布时间】:2016-12-15 10:55:42
【问题描述】:
所以我正在构建一个广告应用。 基本上,用户登录后,就可以发布广告。 我已经发布了下面的模型,但基本上我有一个类别(例如,电子产品或房地产),然后是一个子类别(电子产品->笔记本电脑或房地产->房屋、公寓等) 问题是,不同的物品有不同的属性。 例如,笔记本电脑可能具有“屏幕”、“内存”和“硬盘”属性,而“汽车”可能具有“里程”和“状况”。 我决定将这些属性存储在 JSONField 中。
from django.db import models
from django.contrib.postgres.fields import JSONField
class Category(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class SubCategory(models.Model):
category = models.ForeignKey('Category')
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class Product(models.Model):
name = models.CharField(max_length=255)
subcategory = models.ForeignKey('SubCategory')
description = models.TextField()
price = models.IntegerField()
price_fixed = models.BooleanField(default=False)
monthly_payments = models.BooleanField(default=False)
created = models.DateField(auto_now_add=True)
custom_attributes = JSONField(default=dict)
def __str__(self):
return self.name
现在,如何处理表单和视图中的这些自定义属性? 我需要这样做,以便当用户从下拉列表中选择类别/子类别时,这些属性需要显示为文本字段,并且用户将输入屏幕尺寸、T 恤尺寸或颜色等。
这是我的第一个 django 应用程序,我从中学到的书没有涵盖这样的内容,我不确定从这里去哪里,在 google/SO 上搜索并没有找到解决方案。
【问题讨论】:
标签: python django django-forms django-views