【发布时间】:2019-10-17 10:28:09
【问题描述】:
我有一个用户可以创建和编辑的 UserCoupon 模型。编辑后,如果没有与该代码关联的订单,我只希望他们能够编辑 UserCoupon 实例上的“代码”字段。当有与该优惠券代码关联的订单时,我不是在编辑优惠券表单上输出 {{form.code}},而是输出 {{form.instance.code}}。当用户尝试提交表单时,我收到一条错误消息,指出该字段是必需的。
如何使该字段不需要或以其他方式解决这种情况,以便当为模型表单定义的字段之一在模板中显示为字段的实例而不是输入框时,用户可以提交表单?
Models.py
class UserCoupon(models.Model):
code = models.CharField(max_length=15, unique=True)
amount = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)
forms.py
class EditUserCouponForm (forms.ModelForm):
class Meta:
model = UserCoupon
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(EditUserCouponForm, self).__init__(*args, **kwargs)
def clean(self):
cleaned_data = super(EditUserCouponForm, self).clean()
模板
{% if coupon_order_count > 0 %}
{{form.instance.code}}
{% else %}
{{form.code}}
{% endif %}
谢谢!
【问题讨论】:
标签: django