Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django ModelForm线程安全?_Python_Django_Thread Safety_Django Forms - Fatal编程技术网

Python Django ModelForm线程安全?

Python Django ModelForm线程安全?,python,django,thread-safety,django-forms,Python,Django,Thread Safety,Django Forms,我在这里发疯了。显然,Django的ModelForms存在线程安全问题,我不知道为什么。在下面的代码中,我将_links _设置为_create作为AddTaskForm类的私有成员。我在一个视图中实例化form=AddTaskForm(request.POST),但每次额外调用时,仍然会填充_links_to_create列表。有什么想法吗 class AddTaskForm(forms.ModelForm): 类元: 模型=任务 字段=(‘文本’、‘创建人’、‘任务列表’、) 小部件={

我在这里发疯了。显然,Django的ModelForms存在线程安全问题,我不知道为什么。在下面的代码中,我将_links _设置为_create作为AddTaskForm类的私有成员。我在一个视图中实例化form=AddTaskForm(request.POST),但每次额外调用时,仍然会填充_links_to_create列表。有什么想法吗

class AddTaskForm(forms.ModelForm):
类元:
模型=任务
字段=(‘文本’、‘创建人’、‘任务列表’、)
小部件={
“创建人”:forms.HiddenInput(),
“任务列表”:forms.HiddenInput(),
“文本”:forms.Textarea(属性={
“类”:“自动增长”,
“占位符”:“输入任务…”,
“maxlength”:140
}),
}
tags=forms.CharField(必需=False,widget=PillAutoCompleteInput(
format='{key}:{id}:{value}',
属性={'placeholder':'addpeople,list,dates,etc.})
_链接到创建=[]
定义初始化(self,*args,**kwargs):
super(AddTaskForm,self)。\uuuuuuuuuuuu初始值(*args,**kwargs)
打印self.fields['tags'].widget.source
self.fields['text'].label=False
self.fields['task_list'].required=False
self.fields['tags'].label=False
self.fields['tags'].widget.source=reverse('smart-complete'))
#TODO,窗体未重置。这可能是一个线程安全问题
打印自我。链接到创建
#self.\u链接到\u创建=[]
def清洁(自清洁):
user=self.cleaned_数据['created_by']
items=self.cleanned_数据['tags'].split(';'))
任务列表=无
团队成员=无
对于项目中的项目:
如果不是项目:继续
key,id,value=item.split(“:”)
如果键=='列表':
如果不是任务列表:
任务列表=任务列表。对象。获取用户的所有列表。值列表('id',flat=True)
id=int(id)
如果任务列表中的id为:
self.cleaned_data['task_list']=TaskList.objects.get(id=id)
elif键==“用户”:
如果不是团队成员:
team\u members=user.teams.get\u members(隐含=True)。值\u列表('id',flat=True)
id=int(id)
如果团队成员中有id:
self.\u链接到\u create.append(id)
返回自清理的_数据
def保存(自身、*args、**kwargs):
task=super(AddTaskForm,self).save(*args,**kwargs)
user=self.cleaned_数据['created_by']
如果len(self.\u链接到\u创建):
self.\u links\u to\u create=[TaskLink(user\u id=id,task=task)表示self中的id.\u links\u to\u create]
其他:
self.\u链接到\u create.append(TaskLink(用户=用户,任务=任务))
TaskLink.objects.bulk\u create(self.\u links\u to\u create)

如果你真的想让
\u links\u\u create
成为类的每个实例的私有成员,你需要在
\u init\u
方法中创建该变量