我想根据user_logged过滤表单中的选择。这是我的模特。
#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()
首先,我创建了一个商店,然后将StoreManager关联到商店,然后我想要在表单中添加ImageLogo,因此在该表单的字段“商店”中,我只希望列出与用户关联的商店。
Store = (SuperMarket Store), (ClothesStore)
StoreManager = John(SuperMarket Store), Julian(ClothesStore)
StoreLogo = John (can only view SuperMarket Sotre)
StoreLogo = Julian(can only view ClothesStore)
我正在使用CBV(generic.CreateView)。 有我的看法。
#views.py
class AddPhotoOnEstablishment(LoginRequiredMixin, generic.CreateView):
model = StoreLogo
fields = ['store', 'image']
success_url = reverse_lazy('register:establishment_list')
context_object_name = 'object_name'
我想,如果John已关联到Store并登录系统,则当他添加Image徽标时,Store字段仅显示他关联的Store。
答案 0 :(得分:0)
也许this link会有所帮助。它解释了CreateView类的方法和属性。在render_to_response方法中,您可以使用以下代码获取当前用户:
self.request.user
并检查其是否与您作为响应发送的商店徽标相关联。