1 回答
TA贡献1824条经验 获得超8个赞
form.car需要一个Car对象,而不是带有主键的字符串,但您可以简单地使用:
from django.contrib.auth.mixins import LoginRequiredMixin
class CarView(LoginRequiredMixin, FormMixin, DetailView):
# …
def post(self, request, *args, **kwargs):
form = self.get_form()
self.object = self.get_object()
if form.is_valid():
return self.form_valid(form)
else:
return self.form_invalid(form)
def form_valid(self, form):
form.instance.car_id = self.kwargs['pk']
form.instance.driver = self.request.user
form.save()
return super().form_valid(form)
注意:您可以使用
LoginRequiredMixin
mixin [Django-doc]将视图限制为基于类的视图,以供经过身份验证的用户使用 。
注意:通常使用
settings.AUTH_USER_MODEL
[Django-doc]来引用用户模型比直接使用User
模型 [Django-doc]更好。有关详细信息,您可以参阅文档的参考User
模型部分。
添加回答
举报