我想从列表列表中删除所有重复列表.
所以我有一个像这样的列表.
a = [[1,2],[1,2],[3,4,5],[3,4,5],[3,4,5]]
Run Code Online (Sandbox Code Playgroud)
我希望有:
b = [[1,2],[3,4,5]]
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做.
谢谢
我的模型表单继承自子系统表单.我想限制表单中用户的选择.(特别是名字)我知道我必须使用小部件.但它不起作用.
我必须使用SubsytemForm.
SUBSYSTEM_CHOICES = (a1,a2,a3)
Class Subsystem(models.Model):
name = models.CharField("Name", max_length=20)
class SubsytemForm(forms.ModelForm):
class Meta:
model = Subsystem
widgets = {
'name': ChoiceField(widget=RadioSelect, choices=SUBSYSTEM_CHOICES)
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个自定义清理方法,如果一个特定数据的值已经存在,则查看数据库,如果是,则会引发错误.我正在使用继承自其他类(项目)的类(子系统)的模型形式.当我尝试在表单中添加新的sybsystem时,我想检查sybsystem是否已经存在.
我在视图函数中获取项目名称.
class SubsytemForm(forms.ModelForm):
class Meta:
model = Subsystem
exclude = ('project_name')
def clean(self,project_name):
cleaned_data = super(SubsytemForm, self).clean(self,project_name)
form_subsystem_name = cleaned_data.get("subsystem_name")
Subsystem.objects.filter(project__project_name=project_name)
subsystem_objects=Subsystem.objects.filter(project__project_name=project_name)
nb_subsystem = subsystem_objects.count()
for i in range (nb_subsystem):
if (subsystem_objects[i].subsystem_name==form_subsystem_name):
msg = u"Subsystem already existing"
self._errors["subsystem_name"] = self.error_class([msg])
# These fields are no longer valid. Remove them from the
# cleaned data.
del cleaned_data["subsystem_name"]
return cleaned_data
Run Code Online (Sandbox Code Playgroud)
我的观点功能:
def addform(request,project_name):
if form.is_valid():
form=form.save(commit=False)
form.project_id=Project.objects.get(project_name=project_name).id
form.clean(form,project_name)
form.save()
Run Code Online (Sandbox Code Playgroud)
这不起作用,我不知道该怎么办.我有错误:clean()需要2个参数(给定1个)
我的模特:
class Project(models.Model):
project_name = models.CharField("Project name", max_length=20)
Class Subsystem(models.Model):
subsystem_name …Run Code Online (Sandbox Code Playgroud)