How can I get in a CreateView the pk of an object to assign it to another that has a ForeignKey field.
Model.py
class Manga(models.Model):
author=models.ForeignKey(settings.AUTH_USER_MODEL)
title = models.CharField(max_length = 100)
description = models.TextField(max_length = 700)
Class Chapter(models.Model):
manga = models.ForeignKey(Manga)
owner = models.ForeignKey(settings.AUTH_USER_MODEL)
content = models.FileField(upload_to=user_directory_path)
Views.py
class MangaAddView(LoginRequiredMixin, CreateView):
login_url = '/login'
model = Manga
template_name = 'manageManga/manga_add.html'
form_class = MangaRegistrationForm
success_url = '/'
def form_valid(self, form):
form.instance.author = self.request.user
self.object = form.save()
return HttpResponseRedirect(self.get_success_url())
class ChapterAddView(LoginRequiredMixin, CreateView):
login_url = '/login'
model = Chapter
template_name = 'manageManga/chapter_add.html'
form_class = ChapterRegistrationForm
success_url = '/'
def form_valid(self, form):
manga_id = # forma de obtener el id
form.instance.manga = Manga.objects.filter(id=manga_id)
form.instance.owner = self.request.user
self.object = form.save()
return HttpResponseRedirect(self.get_success_url())
urls.py
urlpatterns = [
url(r'^mangas/add$', views.MangaAddView.as_view(), name = 'manga_add'),
url(r'^mangas/(?P<manga_id>[0-9]+)/chapter/add$', views.ChapterAddView.as_view(), name = 'chapter_add'),#aqui es por donde quiero pasar la id o pk
]
The forms are nothing special, simply in them I omit the author fields of the model Manga and owner & sleeve of the model Chapter.
Thanks in advance.