在我的Django项目中,我制作了一个表单来创建一个模型。当发送表单/创建模型时,我想在"author"字段中引用当前用户。我有一些麻烦。
author = forms.ModelChoiceField(queryset=User.objects.all())
我只想让模型的创建者保存在这个字段中。这可能吗?
模型应该是这样的:
class Book(models.Model):
name = models.CharField(max_length=100)
author = models.ForeignKey(settings.AUTH_USER_MODEL)
某种形式:
class BookForm(ModelForm):
class Meta:
model = Book
fields = ['name']
最后是让它发生的观点。
class BookView(FormView):
form_class = BookForm
def form_valid(self, form):
book = form.save(commit=False)
book.author = self.request.user
book.save()
但请记住,要确保有一个已登录的用户。