python - 显示来自模型 Django 的唯一值的表单
问题描述
学习 Django .. 我正在尝试设置以下内容,需要您的专家建议以使其更好..
我创建了一个模型,并在其上形成以显示数据..在代码之后我有两个问题需要您的建议:)
模型:
class profilestable(models.Model):
choices = [
('Active','Active'),
('Inactive','Inactive')
]
Category = models.CharField(max_length=100)
SubCategory = models.CharField(max_length=100)
product_name = models.CharField(max_length=100)
Status = models.ChoiceField(max_length=20,choices=choices)
def __str__(self):
return self.Category
class Userlist(models.Model):
User = models.CharField(max_length=100)
Categorygroup = models.ForeignKey(profilestable,null=true,on_delete=models.SET_NULL)
def __str__(self):
return self.User
形式:
class userprofileform(forms.ModelForm):
model = Userlist
Fields = ('User','CategoryGroup')
def __init__(self,*args,**kwargs):
super(userprofileform,self).__init__(*args,**kwargs)
profiletable 模型中的样本数据:
查询:
- 我想将类别、子类别和产品名称作为下拉菜单添加到表单中,但是我不确定如何访问要在表单上显示的每个元素。因为我要返回该值,所以我只能提取类别。
- 该列表当前有很多重复值,是否可以在下拉列表中仅显示唯一值。
- 此外,是否可以使其成为多选和依赖级联下拉菜单
请您帮助建议/指导实施此类表格。
太感谢了。
解决方案
该结构需要进行一些更改,例如category
应该是 的父级sub-category
,然后product
位于 下方,因此sub-category
最好为 和 在这种关系中创建一个单独的Category
模型:Sub-category
Product
Category > Sub-category > Product
由于子类别和产品与其父级的关系不是唯一的,因此请使用ForeignKey
字段将它们连接起来。
我还看到您的sample data
许多产品都缩成一排,这在任何缩放、性能或订单方面都不好。
但是我看不到您Userlist
模型的用例。
完成上述操作后,请参考此答案来创建您的下拉菜单,尽管最后不需要 distinct,因为创建单独的模型Category
将避免重复Category
名称。然后在表单提交时,您查询正确的Category
实例Sub-Category
并将其分配给ForeignKey
表单的字段。
推荐阅读
- java - Subject.onNext/ onComplete 不运行 subscribeOn 线程
- angular - 在单独的文件中配置路由并在 app.module.ts 、 HTML 和 component.ts 文件中使用 angular 5/6
- regex - 如何使用 .htaccess 重写从 URL 中删除多个子目录
- android - Qt Android 构建 SSL 错误
- c# - 只有机器人的开发人员才能使用的代码是什么?
- ruby-on-rails - 哈希的rails参数转换
- javascript - 使用 JavaScript 克隆表格行时如何自动增加单元格 ID?
- kinto - IAuthorizationPolicy 中的请求
- mysql - 如何根据字符串的组合获取数据?
- android - 通过广播将功能从一个活动传递到另一个活动