如何使用通用视图在视图中设置模型的字段?

Bar*_*icz 3 django django-generic-views

我有一个模型,有一个作者ForeignKey,如下:

class Appointment(models.Model):
    # ...
    author = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)

我希望在author为当前登录用户创建约会时自动设置该字段.换句话说,作者字段不应出现在我的Form类中:

class AppointmentCreateForm(ModelForm):
    class Meta:
        model = Appointment
        exclude = ('author')
Run Code Online (Sandbox Code Playgroud)

有两个问题:

  1. 如何访问通用CreateView中的表单并设置author
  2. 如何告诉表单保存排除字段以及从用户输入读取的值?

Rob*_*ahl 7

以下似乎稍微简单一些.请注意,设置了self.requestView.as_view

class AppointmentCreateView(CreateView):        
    model=Appointment
    form_class = AppointmentCreateForm

    def get_form(self, form_class):
        form = super(AppointmentCreateView, self).get_form(form_class)
        # the actual modification of the form
        form.instance.author = self.request.user
        return form
Run Code Online (Sandbox Code Playgroud)