【发布时间】:2022-01-20 18:26:29
【问题描述】:
有时需要限制ModelForm 的ForeignKey 字段提供的选项,以便用户看不到彼此的内容。但是,这可能会很棘手,因为模型无法访问 request.user。
考虑一个有两个模型的应用:
class Folder(models.Model):
user = models.ForeignKey(get_user_model(), editable=False, on_delete=models.CASCADE)
name = models.CharField(max_length=30)
class Content(models.Model):
folder = models.ForeignKey(Folder, on_delete=models.CASCADE)
text = models.CharField(max_length=50)
这个想法是用户可以创建文件夹和内容,但只能将内容存储在他们自己创建的文件夹中。
即:
Content.folder.user == request.user
问题:我们如何使用例如CreateView,以便在创建新内容时仅向用户显示他们自己的文件夹的选择?
【问题讨论】:
标签: django django-forms django-authentication django-generic-views