У меня есть три модели и 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
, так как я пришел из деталь этого объекта.
Я пытаюсь использовать get_form в Django CBV (CreateView), но мой набор запросов не работает. Вот мой взгляд.
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, я тоже могу его использовать. Большое спасибо.