第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

我在 /car/offer/4/ 處收到 ValueError Cannot allocate

我在 /car/offer/4/ 處收到 ValueError Cannot allocate

陪伴而非守候 2024-01-16 10:31:50
我正在 django 為 uber 司機(jī)開發(fā)一個(gè)汽車租賃網(wǎng)站,從詳細(xì)視圖我需要司機(jī)能夠選擇他們的租賃期限,其他信息將自動填寫到我的views.py的表格中,我能夠?yàn)榱送ㄟ^request.user獲取司機(jī),我還需要租賃汽車的PK。在這里搜索時(shí),我嘗試了這里人們的各種建議,但我不斷收到一個(gè)又一個(gè)錯(cuò)誤......使用 self.kwargs['pk']結(jié)果ValueError at /car/offer/4/ Cannot assign "4": "CarRent.car" must be a "Car" instance.然后我嘗試使用 form.car = Car.objects.get(pk= self.kwargs.get('pk'))它的結(jié)果AttributeError at /car/offer/4/ 'CarRent' object has no attribute 'is_valid'有人可以告訴我如何獲取 CarRent 模型中保存的汽車實(shí)例嗎?任何幫助將不勝感激。謝謝下面是我的代碼(減少到相關(guān)位)models.pyclass Car(models.Model):    car_owner = models.ForeignKey(User, related_name='car_owner', on_delete=models.CASCADE)class CarRent(models.Model):    car = models.ForeignKey(Car, related_name='rented_car', on_delete=models.CASCADE)    driver = models.ForeignKey(User, related_name='driver_renting', on_delete=models.CASCADE)    rented_weeks = models.BigIntegerField(default=1, choices=WEEK_CHOICES)forms.pyclass RentForm(forms.ModelForm):    class Meta:        model = CarRent        fields = ['rented_weeks']我只顯示租用的周數(shù),因?yàn)檫@是我需要用戶提供的唯一信息。views.pyclass CarView(FormMixin, DetailView):    model = Car    form_class = RentForm    def get_success_url(self):        return reverse('car-details', kwargs={'pk': self.object.pk})    def post(self, request, *args, **kwargs):        if not request.user.is_authenticated:            return HttpResponseForbidden()        self.object = self.get_object()        form = self.get_form()        form = form.save(commit=False)              form.car = self.kwargs['pk']        form.driver = request.user        if form.is_valid():            return self.form_valid(form)        else:            return self.form_invalid(form)    def form_valid(self, form):        form.save()        return super().form_valid(form)
查看完整描述

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)

注意:您可以使用LoginRequiredMixinmixin [Django-doc]將視圖限制為基于類的視圖,以供經(jīng)過身份驗(yàn)證的用戶使用?。


注意:通常使用settings.AUTH_USER_MODEL[Django-doc]來引用用戶模型比直接使用User模型 [Django-doc]更好。有關(guān)詳細(xì)信息,您可以參閱文檔的參考User模型部分。


查看完整回答
反對 回復(fù) 2024-01-16
  • 1 回答
  • 0 關(guān)注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號