Форма Джанго: Уникальное поле - PullRequest
0 голосов
/ 06 сентября 2010

У меня есть 2 простых класса формы / модели

class Booking(forms.Form):  
    name = models.CharField(max_length=100, verbose_name="Your name*:")  
    place = models.ManyToManyField(Location, blank=True, null=True)

class Location(models.Model):
    place = models.CharField(max_length=100)

Когда я отображаю форму, я хочу показать только места, которые ранее не были выбраны. Хитрость (я думаю) заключается в том, что местоположение имеет значение ManytoManyField, поскольку я не могу добавить unique=True к нему.

Так, например, пользователь x выберет из списка (Лондон, Кардифф или Эдинбург) и выберет Лондон. Когда пользователь y загрузит форму, Лондон больше не будет доступен для выбора.

Есть идеи?

1 Ответ

0 голосов
/ 06 сентября 2010

Как насчет управления этим на уровне модели?Добавьте BooleanField, называемый «inuse», или что-то похожее, к модели Location, и затем вы можете добавить в форму фильтр, который выбирает только те, которые не используются.

Вы бы переключили использование в True, когда пользователь x отправит свою форму ...

Кроме того, вы могли бы потенциально изменить отношение к ForeignKey, и тогда вы могли бы использовать 'unique'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...