Python Django:通过ModelForm创建帖子时,如何将用户与已创建的帖子相关联
我创建了一个普通的Django posts应用程序,它基本上让用户创建帖子及其内容。 现在的问题是,我在forms.py中将createpost表单实现为Python Django:通过ModelForm创建帖子时,如何将用户与已创建的帖子相关联,python,django,django-models,Python,Django,Django Models,我创建了一个普通的Django posts应用程序,它基本上让用户创建帖子及其内容。 现在的问题是,我在forms.py中将createpost表单实现为ModelForm。现在,如果它不是一个ModelForm而只是一个html表单,我会使用request.POST.get('data') 但现在我用 class PostForm(forms.ModelForm): class Meta: model = Post fields = ( 'title',
ModelForm
。现在,如果它不是一个ModelForm
而只是一个html表单,我会使用request.POST.get('data')
但现在我用
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = (
'title',
'content',
'image',
)
Models.py
class Post(models.Model):
title = models.CharField(max_length=100)
image = models.ImageField(null=True,blank=True)
content = models.TextField()
user = models.ForeignKey(User,on_delete=models.CASCADE,null=True)
Views.py
def create(request):
form = PostForm(request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
return HttpResponseRedirect('/home')
return render(request,'create.html',{'form':form})
如何将用户与创建的帖子关联?您只需将用户分配到两个保存功能之间的实例:
instance = form.save(commit=False)
instance.user = request.user
instance.save()
你确定?我不必在forms.py中做任何更改,因为在你说了之后,它说用户不是定义的。实际上,我还添加了
如果用户不是None和user。是否处于活动状态:
为了避免匿名用户,那么它说的用户是未定义的