Я бы хотел, чтобы пользователь мог щелкнуть ссылку в раскрывающемся меню, чтобы выбрать свое хранилище, сохранить данные выбора (идентификатор магазина) в кулинарии ie, а затем использовать данные в кулинаре ie для повторной загрузки страницы. Страница должна загружать отчеты для выбранного магазина. Перед тем, как пользователь выберет страницу, будут показаны данные для «хранилища по умолчанию». Я думаю, что мне нужно что-то вроде переменной "выбранный магазин"? Представление создает iframe и нуждается в идентификаторе хранилища в качестве одного из параметров.
Мое приложение имеет модель организации, когда для пользователя создается организация. У организаций могут быть магазины.
models.py
class Org(models.Model):
name = models.CharField(blank=True, max_length=100)
client_id = models.IntegerField()
default_store = models.OneToOneField('Store',
on_delete=models.SET_NULL,
null=True,blank=True,
related_name='+')
def __str__(self):
return self.name
class Store(models.Model):
name = models.CharField(blank=True, max_length=100)
org = models.ForeignKey('Org', on_delete=models.CASCADE)
store_id = models.IntegerField(null=True, blank=True)
def __str__(self):
return self.name
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
org = models.ForeignKey('Org',
on_delete=models.SET_NULL,
null=True, blank=True)
def __str__(self):
return self.user.username
@receiver(post_save, sender=User)
def create_or_update_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
instance.profile.save()
В своем шаблоне я использую приведенное ниже для создания ссылок на магазины, которые есть у организации. Когда пользователь нажимает на ссылку, я хотел бы, чтобы идентификатор магазина был сохранен в cook ie, затем обновите sh страницу и используйте значение для загрузки страницы.
{% for store in request.user.profile.org.store_set.all %}
<a class="dropdown-item" href="STUFF_HERE">{{ store }}</a>
{% endfor %}
Вот фрагмент из определения в представлении, который будет принимать идентификатор магазина.
def report(request, dashboard_id):
payload = {
"resource": {"dashboard": dashboard_id},
"params": {
"store_id": STORE_ID_FROM_COOKIE or Default_Store
},
}
Каков наилучший способ реализовать это и использовать выбранный идентификатор магазина в вид?
Это не обязательно хранить в поваре ie, но я не могу придумать другого способа сделать это, кроме как открыть для себя другие способы.