我有一个UpdateView
类,我想传递event_agency
的{{1}}中的user.id,即fields
的值将设置为{{1} },而不必将其作为输入。
event_agency
如果不使用user.id
,可以通过创建表单实例并传递# view for the event update page
class EventUpdate(UpdateView):
model = Event
# the fields mentioned beindexlow become the entyr rows in the update form
fields = ['event_name', 'event_venue', 'event_type', 'event_agency']
来完成,但是如何使用UpdateView
类呢?
例如,我不能做
request
答案 0 :(得分:0)
通常,在这种情况下,您不向该表单添加字段。您可以按照form_valid
method [Django-doc]中的形式“修补”实例,例如:
from django.contrib.auth.mixins import LoginRequiredMixin
class EventUpdate(LoginRequiredMixin, UpdateView):
model = Event
# no event_agency
fields = ['event_name', 'event_venue', 'event_type']
def form_valid(self, form):
form.instance.event_agency = self.request.user.pk
super().form_valid(form)
话虽如此,看来event_agency
应该是用户模型的ForeignKey
,在这种情况下,您应该将其设置为from.instance.event_agency = self.request.user
。
您可以添加LoginRequiredMixin
mixin [Django-doc],以防止未经身份验证的用户访问您的视图。