@blackbb

Как в форме Django ForeignKey field правильно переделать в CharField?

На сайте есть форма добавления объявления. У объявления есть поле категория. Так вот это поле сейчас в виде select, а мне нужно CharField.
class Subcategory(models.Model):
    title = models.CharField(max_length=300, verbose_name=u'Подкатегории')
class Order(models.Model):
    title = models.CharField(max_length=200, verbose_name=u'Название')
    category = models.ForeignKey(Subcategory, verbose_name='Категория')

Я в forms.py сделал так:
class AddOrderForm(forms.ModelForm):
    category = forms.CharField(max_length=300)
    class Meta:
        model = Order
        fields = '__all__'
        exclude = ['user','status','email','born','category']

В views.py делаю так:
def form_valid(self, form):
        form.instance.user = self.request.user
        form.instance.email = self.request.user.email
        form.instance.category = self.request.POST['category']
        self.object = form.save()

При сохранении выдает ошибку Cannot assign "u'\u0413\u0440\u0443\u0437\u043e\u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0438, \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0430, \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u0438\u0435 \u0443\u0441\u043b\u0443\u0433\u0438'": "Order.category" must be a "Subcategory" instance.
  • Вопрос задан
  • 1734 просмотра
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
form.instance.category = get_object_or_404(Subcategory, title=self.request.POST['category'])

https://docs.djangoproject.com/en/1.11/topics/http...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы