Я хочу отфильтровать выбор в форме согласно 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()
Сначала я создал Store, после чего я связываю StoreManager с Store, а затем я хочу в формах добавить ImageLogo, поэтому в этих формах в поле Store я хочу перечислить только Store, с которым связан пользователь.
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'
Я хочу, если Джон связался с Store и вошел в систему, когда он добавляет логотип Image, в поле Store отображается только магазин, с которым он связан.