Django: Добавьте новое значение в ModelChoiceField

У меня есть поле ModelChoiceField в форме, которая использует виджет TextInput. Я хочу иметь возможность выбирать значение из базы данных или добавлять новые записи в базу данных с помощью этого ввода. Если значение еще не находится в базе данных, я получаю ошибку на форме, которая говорит: "Выберите правильный выбор. Этот выбор не является одним из доступных вариантов"

Модель

class FeedCategory(models.Model):
    category = models.CharField(max_length=255, unique=True)

class RssFeed(models.Model):
    category = models.ForeignKey(FeedCategory, null=True, on_delete=models.SET_NULL)
    name = models.CharField(max_length=255)
    feed = models.URLField()

Форма

class RssForm(forms.Form):
    name = forms.CharField()
    feed = forms.URLField()
    category = forms.ModelChoiceField(queryset=FeedCategory.objects.all(), to_field_name='category', widget=forms.TextInput())

    def clean(self):
         cleaned_data = super().clean()
         ????

Виды

class RssCreateView(FormView):
     template_name = 'dashboard/rss_feed_form.html'
     form_class = RssForm
     success_url = '/dashboard/'

     def form_valid(self, form):
         name = form.cleaned_data['name']
         feed = form.cleaned_data['feed']
         category = form.cleaned_data['category']

         rss_obj = RssFeed(category=category, name=name, feed=feed)
         rss_obj.save()
          return super().form_valid(form)

Шаблон

<form method="post">
   {%csrf_token%}
   {{form|crispy}}
   <button type="submit">Save</button>
</form>

Возможно, вам поможет то, что я использую:

     category = models.ForeignKey("General.entity",verbose_name='Category', db_column="CategoryEntityRef", null=False, blank=False)

Итак, я создаю поле, которое указывает на существующую категорию, существующую в другой таблице. Оно будет отображать ее в виде выпадающего поля. Однако использование этого метода позволит мне иметь возможность добавить еще одну категорию: dropdownbox django

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