有了我的模型Yacht and Offer,我创建了一个中间表OfferHasYacht,以将游艇与Offer连接起来。我已经为两个模型创建了实例。
我想在表单中排除从Offer模型创建的date_created字段,因为当我尝试将其包含在表单中时,它会给出错误:
TypeError:__str__返回了非字符串(类型为datetime.datetime)
为了避免这种情况,我只想从报价模型中排除此字段,而不要排除“备注”字段。
我该怎么做?
models.py
class Yacht(models.Model):
name = models.CharField(max_length=50, verbose_name="Name")
price_per_day=models.DecimalField("Price(€) / Day", max_digits=8, decimal_places=2, default=0,blank=True)
passengers = models.IntegerField("Passengers",blank=True,null=True)
def __str__(self):
return self.name
class Offer(models.Model):
date_created = models.DateTimeField("Date of Offer", null=True,blank=True, default=datetime.datetime.now)
notes=models.CharField("Notes",max_length=100, blank=True)
def __str__(self):
return self.date_created
class OfferHasYacht(models.Model):
offer=models.ForeignKey(Offer,null=True,verbose_name="Offer",on_delete = models.CASCADE)
yacht=models.ForeignKey(Yacht,null=True,verbose_name="Yacht",on_delete = models.CASCADE)
def __str__(self):
return self.yacht.name
forms.py
class OfferHasYachtForm(ModelForm):
class Meta:
model = OfferHasYacht
#exclude=('',)
fields = ('yacht','offer',)
使用此解决方案会引发错误:TypeError: str 返回了非字符串(类型为datetime.datetime)
如何排除商品模型的date_created字段? 或如何处理未创建此错误的date_created字段?
答案 0 :(得分:0)
您可以在模型上使用auto_now_add=True
,它将自动处理所有问题。