У меня есть следующая модельДжанго формы исключают значения из choicefield
class ActionConfirm(models.Model):
CONFIRM_METHOD = (
(u'ce', u'Certificate'),
(u'tf', u'Trainee Feedback'),
(u'ms', u'Multi Source Feedback'),
(u'rp', u'Reflection upon Practice'),
(u'ot', u'Other - Please add/describe')
)
confirm_method = models.CharField(max_length=2, choices=CONFIRM_METHOD)
user = User
и следующей формы
class ActionConfirmForm(forms.ModelForm):
class Meta:
model = ActionConfirm
, и я знаю, что я могу получить свои текущие выборы, делая
selected = ActionConfirm.objects.filter(user=user)
Итак, как я могу исключить значения из поля confirm_method, которое они уже выбрали?
Если это было из db, я знаю, что могу сделать choices = ActionConfirm.objects.exclude(choice__in = selected)
, но я не знаю, как это сделать, если это из кортежа кортежей.
Просто чтобы прояснить - вы пытаетесь это сделать, так что пользователи могут создавать только 'экземпляры ActionConfirm' с параметрами 'confirm_method', которые * они * не использовали для ранее созданных экземпляров ActionConfirm'? –
Да, это правильно. Я не помещал все поля в модель ActionConfirm выше. Также есть поле пользователя, а выбрано = должно быть ActionConfirm.objects.filter (user = user), а не ConfirmChoices. Должно быть обновлено сейчас – John