我有一个搜索栏。搜索订单代码后,我想打开一个包含订单信息的新页面,并在同一页面上为商品创建一个新表格。搜索和获取订单信息效果很好。但是在页面上添加新表单后出现错误
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}}后出现错误。
这里是什么问题?
在模型Paket中:self.siparis存储Siparisler的“ Ids”。您不能以这种方式使用它:
def __str__(self):
return self.siparis.siparis_no
只需删除