我尝试做的是自动为正在提交表单的用户设置模型字段。
Models.py:
class startcampaign(models.Model):
title = models.CharField(max_length=30)
description = models.TextField()
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
Forms.py:
class StartCampaignsForm(forms.ModelForm):
class Meta:
model = startcampaign
exclude =['user']
Views.py:
def register(request):
if request.method == 'POST':
form = StartCampaignsForm(request.POST)
if form.is_valid():
campaign_register = StartCampaignsForm.save(commit=False)
campaign_register.user = self.objects.get(user=self.user)
campaign_register.save(commit=True)
return redirect('home')
else:
form = StartCampaignsForm()
return render(request, 'Campaigns/register.html', {'form': form})
当我今天运行时,我得到了save()缺少位置参数' self'。 我'不专注于这种方法。我只需要一个工作示例,让我自动设置将表单提交到用户'的外键字段的用户。在我的模型中。
答案 0 :(得分:1)
您的用户应该登录才能使用此功能。
<强> views.py 强>
def register(request):
if request.method == 'POST':
form = StartCampaignsForm(request.POST)
if form.is_valid():
campaign_register = StartCampaignsForm.save(commit=False)
campaign_register.user = request.user
campaign_register.save(commit=True)
return redirect('home')
else:
form = StartCampaignsForm()
return render(request, 'Campaigns/register.html', {'form': form})