Django - 'create by'-field



在我的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() 

但请记住,要确保有一个已登录的用户。

最新更新