Python Django下拉列表取决于型号?

Python Django下拉列表取决于型号?,python,django,Python,Django,我正试图根据模型制作一个下拉列表。例如,我的应用程序有一个组织模型,当用户被创建时,会为他们设置一个组织。组织可以有商店。当登录用户访问此下拉列表时,我想列出与用户设置为的组织关联的所有商店。最好的方法是什么 models.py class Org(models.Model): name = models.CharField(blank=True, max_length=100) client_id = models.IntegerField() default_store =

我正试图根据模型制作一个下拉列表。例如,我的应用程序有一个组织模型,当用户被创建时,会为他们设置一个组织。组织可以有商店。当登录用户访问此下拉列表时,我想列出与用户设置为的组织关联的所有商店。最好的方法是什么

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()

我想使用这个下拉列表作为引导导航栏的一部分,在这里我有其他相关的下拉列表。这是我想使用的导航条形码部分。我知道它不会完全符合我下面的内容,但这是我如何制作不同下拉列表的一个示例

            <div class="btn-group">
              <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                Reports
              </button>
              <div class="dropdown-menu">
                <a class="dropdown-item" href="{% url 'something' %}">Store_a1</a>
                <a class="dropdown-item" href="{% url 'something' %}">Store_a2</a>
                <a class="dropdown-item" href="{% url 'something' %}">Store_a3</a>

              </div>
            </div>
页面加载一个iframe url,其中store\u id作为查询参数传入,当前正在传递默认\u存储的store\u id。我想我需要一个变量,比如selected_store,或者那些行?当用户单击下拉列表中的一个存储时,我希望将所选存储的存储id传递给iframe url中的查询参数,并刷新页面


谢谢

基于您的模型,您应该能够在模板中执行类似操作,以便为用户遍历所有商店

{% for store in request.user.profile.org.store_set.all %}
    <a class="dropdown-item" href="{% url 'something' store_id=store.id %}">{{ store }}</a>
{% endfor %}

你能分享你想要筛选的选择和你的模型的表单吗这里是用户->组织关系?很抱歉忘了包括这个,刚刚编辑的问题我想我可能在访问商店模型时遇到了问题。下面的代码看起来应该有用吗?我想显示商店名称。{%for request.user.profile.org.store.all%}{%endfor%}实际上,我需要使用store.id访问存储id,而不是将其传递给url中的查询参数。有没有办法通过单击url来设置store.id值?