У меня есть модель 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 %}
Спасибо!