Python 如何在django模型中返回双字符串
大家好。我有个小问题。我创建了一个模型:Python 如何在django模型中返回双字符串,python,django,Python,Django,大家好。我有个小问题。我创建了一个模型: class Cudzoziemiec(models.Model): imie = models.CharField(max_length=80, verbose_name="Imię", unique=False) nazwisko = models.CharField(max_length=150, verbose_name="Nazwisko", unique=False) class Meta: verbo
class Cudzoziemiec(models.Model):
imie = models.CharField(max_length=80, verbose_name="Imię", unique=False)
nazwisko = models.CharField(max_length=150, verbose_name="Nazwisko", unique=False)
class Meta:
verbose_name = 'Cudzoziemca'
verbose_name_plural = 'Cudzoziemcy'
def __str__(self):
return self.nazwisko
class Umowa(models.Model):
RODZAJ_UMOWY = (
('UP', 'Umowa o pracę'),
('UZ', 'Umowa zlecenie'),
('UD', 'Umowa o dzieło'),
)
osoba = models.ForeignKey(Cudzoziemiec, on_delete=models.CASCADE, verbose_name="Wybierz cudzoziemca")
umowa_rodzaj = models.CharField(max_length=250,choices=RODZAJ_UMOWY, verbose_name="Rodzaj umowy")
nr_umowy = models.PositiveIntegerField()
umowa_od = models.DateField(auto_now=False, auto_now_add=False, verbose_name="Data rozpoczęcia pracy")
umowa_do = models.DateField(auto_now=False, auto_now_add=False, verbose_name="Data zakończenia pracy")
class Meta:
verbose_name = 'Umowę'
verbose_name_plural = 'Umowy'
def __str__(self):
return self.nr_umowy
在面板管理中,一切正常。但是当我想在Umowy中创建一个新记录时,如何在panel admin中显示“imie”+“nazwisko”。现在我只有“nazwisko”,如果我想通过Umowa类添加新记录,请在该类中选择一个“osoba”
编辑:
当我想添加新记录时,django会返回一个错误:
__str__ returned non-string (type int)
不确定这是否是您想要的,但Django表单生成的select输入中使用的字符串表示通常使用
\uuu str\uu
方法:
class Cudzoziemiec(models.Model):
imie = models.CharField(max_length=80, verbose_name="Imię", unique=False)
nazwisko = models.CharField(max_length=150, verbose_name="Nazwisko", unique=False)
class Meta:
verbose_name = 'Cudzoziemca'
verbose_name_plural = 'Cudzoziemcy'
def __str__(self):
return '{} {}'.format(self.imie , self.nazwisko)
或同等结果:
def __str__(self):
return '%s %s' % (self.imie , self.nazwisko)
或者如果您使用的是Python 3.6+
def __str__(self):
return f'{self.imie} {self.nazwisko}'
关于“non-string”错误,这是因为
\uu str\uu
应该返回字符串对象。在第二种情况下,您将返回一个self.nr_umowy
,它是一个PositiveIntegerField
你必须投下它:
def __str__(self):
return str(self.nr_umowy)
是的,维克多在工作。我采取了第一种解决方案,一切正常。谢谢,维克多,你能检查一下我的编辑吗?当我想保存记录时,django会返回一个错误