Я пытаюсь связать коллекцию объектов с зарегистрированным пользователем.
Urls.py
urlpatterns = [
path('new/collection', views.CollectionCreate.as_view(), name="create"),
path('edit/collection/<int:pk>', views.CollectionUpdate.as_view(), name='update'),
path('delete/collection/<int:pk>', views.CollectionDelete.as_view(), name='delete'),
]
Views.py
На этой странице создается форма, в которой зарегистрированный пользователь User
вводит заголовок Collection
и создает его.Как сейчас, Collection
не ассоциируется ни с одним пользователем.Я знаю, что в этой точке мне нужно прикрепить созданный Collection
к зарегистрированному User
, но я достиг точки остановки.
class CollectionCreate(CreateView):
model = Collection
template_name = 'upload/collection_form.html'
fields = [
'title'
]
Models.py
В этом классе коллекция ассоциируется с пользователем Django по умолчанию.
class Collection(models.Model):
user = models.OneToOneField(User, blank=True, null=True, on_delete=models.CASCADE)
title = models.CharField(max_length=140)
tags = models.CharField(max_length=140)
upload_date = models.DateTimeField(auto_now_add=True)
def get_absolute_url(self):
return reverse('gallery:detail', kwargs={'pk': self.pk})
def __str__(self):
return self.title + ' by ' + self.author
class Meta:
ordering = ['-upload_date']
Учитывая form.ModelForm
, я знаю, что могу получить доступ к переданным данным, используя form = ModelForm(request.POST)
внутри def post(self, ...)
функции.
Я не знаю, как это сделать в CreateView.