django - CreateView 模型对象到模板
问题描述
所以我试图将对象列表传递到我的模板中。我希望我的 profile.html 反映模型中的信息。我在 ListView 上找到了一些文档,但在 CreateView 上没有找到。唯一传递给模板的是 {{ user.username }}。任何建议将不胜感激。
profile.html
{% extends 'base.html' %}
{% block title %}User Profile{% endblock %}
{% block content %}
{% if user.is_authenticated %}
<p>User: {{ user.username }} logged in.</p>
<p><a href="{% url 'homepage' %}">homepage</a></p>
<p><a href="{% url 'logout' %}">logout</a></p>
{% else %}
<a href="{% url 'login' %}">login</a> |
<a href="{% url 'signup' %}">signup</a>
{% endif %}
{% endblock %}
模型.py
class Volunteer(CustomUser):
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, primary_key=True)
about_me = models.TextField(default='')
class Meta:
db_table = "volunteer"
表格.py
class VolunteerSignUpForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = Volunteer
fields = ("username", "email", "first_name", "last_name",)
@transaction.atomic
def save(self):
user = super(VolunteerSignUpForm, self).save(commit=False)
user.is_volunteer = True
user.save()
return user
视图.py
class VolunteerSignUp(CreateView):
form_class = VolunteerSignUpForm
success_url = reverse_lazy('login')
template_name = 'volunteer_signup.html'
#added code from answer
def get_context_data(self, **kwargs):
context = super(VolunteerSignUp, self).get_context_data(**kwargs)
context['profile_list'] = Volunteer.objects.all()
return context
profile.html 以下是一些 iv 试图获取信息但不起作用的东西。
<ul>
{% for volunteer in object_list %}
<li>{{ volunteer.about_me }}</li>
{% endfor %}
</ul>
<ul>
{% for volunteer in profile_list %}
<li>{{ volunteer.about_me }}</li>
{% endfor %}
</ul>
{% if profile_list %}
{% else %}
<p>There is no info.</p>
{% endif %}
解决方案
您可以在课堂上使用 get_context_data() 方法。
class VolunteerSignUp(CreateView):
form_class = VolunteerSignUpForm
success_url = reverse_lazy('login')
template_name = 'volunteer_signup.html'
def get_context_data(self, **kwargs):
data = super(VolunteerSignUp, self).get_context_data(**kwargs)
data['profile_list'] = 'your queryset goes here'
return data
推荐阅读
- javascript - Web API 是 javascript 功能还是浏览器功能?
- reactjs - React-router URL 更改,但页面仍未更改
- installshield - Installshield 2015 关闭打开的浏览器
- java - 我无法在 .jar 文件中加载图像(Spring)
- image - 为什么图像不加载 - CodeSandbox
- google-chrome-extension - 使用 chrome 扩展显示 Chrome 错误页面
- java - 当我想 FCM 发送通知时,无法将 java.lang.String 类型的对象转换为类型
- javascript - 变量设置为未定义
- flutter - 调整窗口大小时抽屉未正确关闭
- php - Laravel 迁移显示现有列的列不存在