我正在寻找一种方法,以便我的模板可以识别我的扩展用户配置文件中的属性,特别是如果他是联盟会员,并在模板中显示不同的内容,无论他是否是联盟会员。是否还有其他方法可以构建装饰器?
我使用了其他{%if%}标记,例如此内置身份验证请求{% if request.user.is_authenticated %}
models.py project / useprofile /,这本书在另一个应用程序项目/书中
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
affiliate = models.BooleanField(default=False)
add_book.html
{%extends 'base.html' %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block content1 %}
{% if userprofile.profile.affiliate = True %}
<h1>New post</h1>
<form method="POST" class="post-form">
{% csrf_token %}
{{ form|crispy }}
<button type="submit" class="save btn btn-primary">Save</button>
</form>
{% endif %}
{% endblock %}
urls.py
url(r'^book/add/$', 'book.views.addbook', name='addbook'),
views.py
def addbook(request):
if request.method == "POST":
form = BookForm(request.POST)
if form.is_valid():
book = form.save(commit=False)
book.save()
return redirect('home')
else:
form = BookForm()
return render(request, 'add_book.html',
{'form':form,
})
更新:我找到了一个解决我问题的简单方法,只需要将{% if user.profile.affiliate %}
放在我的模板中,因为我已经扩展了django用户配置文件,并且会员是boolean所以我不需要做等于==部分它通过True
,但我仍在寻找其他可用选项