我有三个模型,每个都有过滤器的ListView。这是我的模特。
#models.py
class Store(models.Model):
name = models.CharField(max_length=64, unique=True)
description = models.TextField(null=True, blank=True)
class StoreManager(models.Model):
store = models.ForeignKey(Store, related_name='store', on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
class StoreLogo(models.Model):
store = models.ForeignKey(Store, related_name='store', on_delete=models.CASCADE, verbose_name='Store')
image = photo = models.FileField()
我想创建一个表格,该字段包含ForeignKey过滤特定对象。
在Detail Store
的视图中,我看到了Store.Object01
的详细信息,并且在视图中有一个视图StoreLogo
表单的链接,我希望以此形式将字段Store
赋予属性Object01
,因为我来自这个对象的细节。
我正在尝试在Django CBV(CreateView)中使用get_form,但是我的查询集不起作用。这是我的看法。
class CreateLogo(LoginRequiredMixin, generic.CreateView):
model = StoreManager
template_name = 'generic_form.html'
fields = ['store', 'user']
success_url = reverse_lazy('register:store_logo_list')
context_object_name = 'object_name'
def get_form(self):
form = super(CreateLogo, self).get_form()
form.fields['store'].queryset = StoreLogo.objects.filter(store__id=self.request.id)
return form
有人可以帮助我吗?如果您有TemplateView的解决方案,也可以使用。非常感谢。