Как задать ForeignKey во view

Как в views.py привязать объявление к полю ForeignKey? Я пытаюсь это сделать так, но не получается:

AdvertisementImages.objects.create(image=i, advertisement=form.save())

Я перепробовал кучу вариантов и перерыл весь гугл, но ничего не помогло. Буду очень благодарен за любую помощь!

models.py

class HelpAnnouncement(models.Model):
"""HelpAnnouncements"""
url = models.SlugField(max_length=200, unique=True, auto_created=True)
title = models.CharField(max_length=100)
description = models.TextField(max_length=2000)
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
location = models.CharField(max_length=30)
created = models.DateTimeField(auto_now_add=True)
number = models.CharField(max_length=13)
category = models.ForeignKey(CallBoardCategory, on_delete=models.CASCADE)
views = models.PositiveIntegerField(default=0)
isRequest = models.BooleanField(default=False)
status = models.BooleanField(default=False)

def save(self, *args, **kwargs):
    if not self.url:
        self.url = slugify(self.title + "-" + rand_slug())
    super(HelpAnnouncement, self).save(*args, **kwargs)

def get(self):
    self.views += 1
    self.views.save()
    return self.views

class Meta:
    verbose_name = "Help announcement"
    verbose_name_plural = "Help announcements"

def __str__(self):
    return self.title


def get_url(self):
    return reverse('advertisementDetail', kwargs={'slug': self.url})


class AdvertisementImages(models.Model):
"""Photos for Advertisement"""
image = models.ImageField("Зображення", upload_to="peopleHelp_images/")
advertisement = models.ForeignKey(HelpAnnouncement, verbose_name="Зображення", on_delete=models.CASCADE, related_name='get_url')

class Meta:
    verbose_name = "Зображення з оголошення"
    verbose_name_plural = "Зображення з оголошення"

forms.py

class CallCreateForm(forms.ModelForm):


class Meta:
    model = HelpAnnouncement
    fields = ('title', 'description', 'location', 'category')


class CallImagesForm(forms.ModelForm):
    class Meta:
        model = AdvertisementImages
        image = forms.ImageField(widget=widgets.FileInput(attrs={'multiple': True}))
        fields = ('image',)

views.py

def create(request):
if request.method == 'POST':
    form = CallCreateForm(request.POST, request.FILES)
    form_2 = CallImagesForm(request.POST, request.FILES)
    if form.is_valid():
        form.instance.author = request.user
        form.instance.number = request.user.phone
        form.save()
        for i in form_2:
            AdvertisementImages.objects.create(image=i, advertisement=form.save())

        return redirect('advertisementList')
else:
    form = CallCreateForm()
    form_2 = CallImagesForm()
return render(request, 'peoplehelp/create.html', {'form': form, 'form_images': form_2})
Вернуться на верх