Как я могу исправить эту ошибку "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. Ошибка "Выберите правильный выбор. Этот выбор не является одним из доступных вариантов."

Вот снимок экрана ошибки:

enter image description here

В документации по параметру 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 the User model [Django-doc] directly. For more information you can see the referencing the User model section of the documentation.

Вернуться на верх