这个问题延伸了 Django Pass Multiple Models to one Template
因为我想生成1个模板,即我的个人资料索引页面,所以它将列出由url中指定的用户创建的所有对象
我想查询一个模板的多个模型,获取有问题的个人资料并显示由附加个人资料创建的所有对象
views.py
class ProfileIndex(ListView):
context_object_name = 'account_list'
template_name = 'profiles/account_index.html'
queryset = Profile.objects.all()
def get_context_data(self, **kwargs):
context = super(ProfileIndex, self).get_context_data(**kwargs)
context['profile'] = Profile.objects.all()
context['oferto'] = Oferto.objects.get(kwargs.profile.slug)
return context
urls.py我想我需要从网址获取个人资料slug,以便在网址中搜索该用户的所有内容
url(
regex=r"^index/(?P<slug>[-_\w]+)",
view=ProfileIndex.as_view(),
name="profile_index",
),
这是最难弄明白的,如何使我的模板在相关上下文中正常工作
{% block content %}
<h1>{{ profile }}<h1>
<h2> Ofertoj or/aŭ Offers</h2>
{% for oferto in profile %}
<a href="{% url "oferto_detail" oferto.slug %}">{{ oferto.name }}</a><br/>
{% endfor %}
{% endblock %}
答案 0 :(得分:0)
您没有说明您的问题究竟是什么。但是你在Oferto的查询中使用的语法有两个问题:首先,kwargs是一个带有“slug”键的字典(不知道为什么你把配置文件放在那里),其次你需要提供要查询的字段名称。
应该是:
context['oferto'] = Oferto.objects.get(slug=kwargs['slug'])
答案 1 :(得分:0)
前端/ models.py
Class Profile(models.Model):
....
Class Oferto(models.Model):
profile = model.ForeignKey(Profile):
...
前端/ views.py
Class ViewProfileList(ListView):
model = Profile
template_name = 'frontend/view_profile_list.html'
前端/模板/前端/ view_profile_list.html
{% for profile in object_list.all %}
{% for ofer in profile.oferto_set.all %}
{{ ofer.you_field }}
{% endfor %}
{% endfor %}