Django: Только одно из двух полей может быть заполнено в

У меня есть эта модель:

class Journals(models.Model):
    jid = models.AutoField(primary_key=True)
    code = models.CharField("Code", max_length=50)
    name = models.CharField("Name", max_length=2000)
    publisher = models.CharField("Publisher", max_length=2000)
    price_euro = models.CharField("Euro", max_length=2000)
    price_dollars = models.CharField("Dollars", max_length=2000)

Есть ли способ позволить людям заполнить также price_euro или price_dollars?

Я действительно знаю, что лучший способ решить проблему состоит в том, чтобы иметь только одно поле и другую таблицу, которые указывают валюту, но у меня есть ограничения, и я не могу изменить DB.

Спасибо!

7
задан Giovanni Di Milia 27 April 2010 в 18:18
поделиться

2 ответа

Я согласен с Т. Стоуном, что настройка формы - лучший способ. Если вы не можете этого сделать или в дополнение к этому, вы можете применить правило с помощью специального метода clean () в вашей форме . Просто имейте в виду, что любые ошибки проверки, которые вы бросаете в методе clean (), не будут привязаны к конкретным полям, а будут привязаны к самой форме.

2
ответ дан 7 December 2019 в 01:18
поделиться

Не обязательно, чтобы интерфейс отражал структуру данных. Вы можете просто сделать так, чтобы ваш пользовательский интерфейс представил им одно поле валюты, а затем выбор между долларами США и евро, а затем, когда данные будут возвращены в модель журналов, вы просто назначите их правильному полю и очистите другое.

4
ответ дан 7 December 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: