1 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
form.car需要一個(gè)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]將視圖限制為基于類的視圖,以供經(jīng)過身份驗(yàn)證的用戶使用?。
注意:通常使用
settings.AUTH_USER_MODEL
[Django-doc]來引用用戶模型比直接使用User
模型 [Django-doc]更好。有關(guān)詳細(xì)信息,您可以參閱文檔的參考User
模型部分。
添加回答
舉報(bào)