如何从表单中排除外国人的关键字段

时间:2019-11-07 08:11:26

标签: django forms

有了我的模型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字段?

1 个答案:

答案 0 :(得分:0)

您可以在模型上使用auto_now_add=True,它将自动处理所有问题。