我要做的是自动为提交表单的用户设置模型字段。
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"。我不致力于这种方法。我只需要一个工作示例,让我自动将提交表单的用户设置为模型中"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 = request.user
campaign_register.save(commit=True)
return redirect('home')
else:
form = StartCampaignsForm()
return render(request, 'Campaigns/register.html', {'form': form})