在页面上添加表单后,获取__str__返回非字符串错误

问题描述 投票:1回答:1

我有一个搜索栏。搜索订单代码后,我想打开一个包含订单信息的新页面,并在同一页面上为商品创建一个新表格。搜索和获取订单信息效果很好。但是在页面上添加新表单后出现错误

TypeError at /paketle/
__str__ returned non-string (type NoneType)

这是我的模特:

class Siparisler(models.Model):

    siparis_no = models.CharField(max_length=80)
    ..

    class Meta:
        verbose_name = "Sipariş"
        verbose_name_plural = "Siparişler"



    def __str__(self):
        return self.siparis_no

class Urunler(models.Model):

    urun_adi = models.CharField(max_length=250,blank=True,null=True)
    barkod = models.CharField(max_length=60,blank=True,null=True)


    class Meta:
        verbose_name = "Ürün"
        verbose_name_plural = "Ürünler"
        ordering = ['pk']

    def __str__(self):
        return self.urun_adi

class Paket(models.Model):

    siparis = models.ForeignKey(Siparisler,on_delete=models.CASCADE,related_name='siparis_paket')
    urun = models.ForeignKey(Urunler,on_delete=models.PROTECT,related_name='urun_siparis_paket')
    miktar = models.CharField(max_length=6,blank=True,null=True)



    class Meta:
        verbose_name = "Paket"
        verbose_name_plural = "Paketler"
        ordering = ['-pk']


    def __str__(self):
        return self.siparis.siparis_no

我的forms.py

from django import forms
from .models import Paket


class PaketForm(forms.ModelForm):

   class Meta:
      model = Paket
      fields = '__all__'

我在这里的观点:我在这里的观点:我的意见

class Paketleme(CreateView):

    model = Paket
    template_name = "siparis_paketle.html"
    form_class = PaketForm
    success_url = '/paketara/'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        if self.request.POST:
            sorgu = self.request.POST.get('sorgu')
            query = get_object_or_404(Siparisler, pazar_yeri_kargo_kodu=sorgu)
            context['object'] = query
        return context




class Paketle(TemplateView):
    template_name = "paketleme.html"


    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        bekleyensiparis = Siparisler.objects.filter(siparis_durum=1).count()
        bugun_siparis = Siparisler.objects.filter(siparis_tarih=datetime.today()).count()
        gunsayisi = 3
        geciken_siparis = Siparisler.objects.filter(siparis_tarih__gte=datetime.now()-timedelta(days=gunsayisi)).count()
        iptaliadesipari = Siparisler.objects.filter(siparis_durum=9).count()
        context['iptaliadesipari'] = iptaliadesipari
        context['geciken_siparis'] = geciken_siparis
        context['bugunsiparis'] = bugun_siparis
        context['bekleyen'] = bekleyensiparis

        return context

在teplate页面(siparis_paketle.html)上添加{{form}}后出现错误。

这里是什么问题?

python django django-generic-views
1个回答
0
投票

在模型Paket中:self.siparis存储Siparisler的“ Ids”。您不能以这种方式使用它:

 def __str__(self):
        return self.siparis.siparis_no

只需删除

© www.soinside.com 2019 - 2024. All rights reserved.