【发布时间】:2019-03-26 00:54:06
【问题描述】:
我正在尝试将对象集合与登录用户相关联。
网址.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'
]
模型.py
在这个类中,一个 Collection 与一个默认的 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,我知道我可以通过在def post(self, ...) 函数中使用form = ModelForm(request.POST) 来访问传递的数据。
我不知道如何在 CreateView 中做到这一点。
【问题讨论】:
标签: python django associations django-class-based-views django-generic-views