Я пытаюсь сохранить внешний ключ в сериализаторе restframework django.
Моя цель - сохранить в базе данных информацию с iframely.com, и эта часть работает хорошо.Но мне нужно также сохранить его в определенной категории.После добавления поля "Board (поле названия моей категории)" у меня ошибка: нулевое значение в столбце "board_id" нарушает ненулевое ограничение
Моя модель:
class Embed(models.Model):
url = models.URLField(max_length=255)
title = models.CharField(max_length=255)
description = models.TextField()
thumbnail_url = models.URLField(max_length=255)
html = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
board = models.ForeignKey(Board, on_delete=models.CASCADE, verbose_name='Kategoria')
Форма:
class SubmitEmbed(forms.Form):
url = forms.URLField()
board = forms.ModelChoiceField(queryset=Board.objects.all())
Сериализатор:
class EmbedSerializer(serializers.ModelSerializer):
author = serializers.HiddenField(default=serializers.CurrentUserDefault())
board = serializers.RelatedField(read_only=True)
class Meta:
model = Embed
fields = '__all__'
Вид:
def save_embed(request):
if request.method == "POST":
form = SubmitEmbed(request.POST)
if form.is_valid():
url = form.cleaned_data['url']
r = requests.get('http://iframe.ly/api/oembed?url=' + url + '&key=' + settings.IFRAMELY_KEY)
json = r.json()
serializer = EmbedSerializer(data=json, context={'request': request})
if serializer.is_valid():
embed = serializer.save()
return render(request, 'embed/embeds.html', {'embed': embed})
else:
form = SubmitEmbed()
return render(request, 'embed/embedadd.html', {'form': form})