Как я могу исправить эту ошибку "premium не является одним из допустимых вариантов, пожалуйста, выберите допустимый вариант" из выпадающего списка в django?
Контекст:
Я смог установить пользователю статус PREMIUM из панели администратора, но после сброса базы данных я вижу эту ошибку. Я не могу понять, что происходит и как это исправить.
Ошибка: "Выберите правильный выбор. PREMIUM не является одним из доступных вариантов".
Вот код для моего класса Profile:
class Profile(models.Model):
PREMIUM_CHOICES = (("FREE",0),("PREMIUM",1))
user = models.OneToOneField(User,primary_key=True,on_delete=models.CASCADE)
premium = models.IntegerField(choices=PREMIUM_CHOICES,default=0)
due_date = models.DateField(null=True)
Я просмотрел несколько ответов на Stackoverflow: База данных MongoDB. Ошибка "Выберите правильный выбор. Этот выбор не является одним из доступных вариантов."
Вот снимок экрана ошибки:
В документации по параметру choices=… [Django-doc] говорится:
Последовательность, состоящая из итераций ровно из двух элементов (например.
[(A, B), (A, B) …]) для использования в качестве вариантов для данного поля. Если выбор задан, он будет принудительно проверяться моделью и виджет формы по умолчанию будет представлять собой поле выбора с этими вариантами выбора вместо стандартного текстового поля.Первый элемент в каждом кортеже - это фактическое значение, которое должно быть установлено в модели, а второй элемент - человекочитаемое имя.
Первый элемент, таким образом, является ключом (здесь
int), а второй - человекочитаемым именем этого значения. Таким образом, выбор должен быть следующим:PREMIUM_CHOICES = ((0, 'FREE'),(1, 'PREMIUM'))
Note: It is normally better to make use of the
settings.AUTH_USER_MODEL[Django-doc] to refer to the user model, than to use theUsermodel [Django-doc] directly. For more information you can see the referencing theUsermodel section of the documentation.
