标签: django-templates

如何显示评分最高的 5 位用户?姜戈

我想显示评分最高的 5 位用户。然而,它们目前没有显示有序,当我向用户添加两个评级时,它会出现两次,而不是计算平均值并放在正确的位置。

这些是模型:

# this is model for user
class UserProfile(models.Model):
    user = models.OneToOneField(User, related_name='profile')
    profilepic = models.ImageField(blank=True)
    city = models.ForeignKey(City)
    slug = models.SlugField(unique=True)


    def save(self, *args, **kwargs):
        # Uncomment if you don't want the slug to change every time the name changes
        self.slug = slugify(self.user.username)
        super(UserProfile, self).save(*args, **kwargs)

    def __unicode__(self):
        return self.user.username

# this is the model for user ratings - one to many relationship with User
class UserRating(models.Model):
    user = models.ForeignKey(User)
    comment = models.CharField(max_length=500)
    rating = models.IntegerField(default=5) …
Run Code Online (Sandbox Code Playgroud)

django django-templates django-models django-views

0
推荐指数
1
解决办法
136
查看次数

Django 根据用户身份验证更改基本模板

我有两个基本模板:base.html 和 base_visitor.html。如果用户经过身份验证,我希望扩展base.html;如果用户未经身份验证,我希望扩展base_vistior.html。我已经尝试过这个:

{% if user.is_authenticated %}
  {% extends 'base.html' %}
{% else %}
  {% extends 'base_visitor.html' %}
{% endif %}

{% block title %}{{ title }}{% endblock %}
{% block body %}

<h1>Title</h1>

{% if models %}
  {% for model in models %}
  <h2>{{ model.model_number }}<h2>
  {% endfor %}


{% else %}
<h3>NO models</h3>

{% endif %}





{% endblock %}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,这给了我一个错误:“第 3 行的块标记无效:'else'。您是否忘记注册或加载此标记?”

感谢帮助!

authentication django django-templates

0
推荐指数
1
解决办法
1236
查看次数

Django 模板:将 href 属性作为条件处理

现在,在我的 Django 模板中,a如果条件通过或失败,我正在编写一个全新的标记。有没有一种方法可以在a标签中写入这个条件,以便标签中只有一个?

{% for app in apps %}
    {% if app.app_id == "app-smart" %} 
      <a href='{{app.url}}' class='portfolio-link'>
    {% else %}
      <a href='{% url app.url %}' class='portfolio-link'>
    {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

django django-templates

0
推荐指数
1
解决办法
1582
查看次数

Django urls.py 误认为两个关闭的 url

我正在向我的应用程序添加表单来修改我的大厅(我的自定义模型)。

urls.py中,这是我的 urlpattern:

urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^lobbys/$', views.LobbyListView.as_view(), name='lobbys'),
url(r'^lobby/(?P<pk>[\w-]+)/$', views.LobbyDetailView.as_view(), name='lobby-detail'),
url(r'^lobby/create/$', views.LobbyCreate.as_view(), name='lobby_create'),
url(r'^lobby/(?P<pk>\d+)/update/$', views.LobbyUpdate.as_view(), name='lobby_update'),
url(r'^lobby/(?P<pk>\d+)/delete/$', views.LobbyDelete.as_view(), name='lobby_delete'),
]
Run Code Online (Sandbox Code Playgroud)

问题如下:

第三个 URL 应该链接到以 UUID 字段作为主键标识的单个大厅模板。如果没有最后三行,一切都正常,但是当我添加表单的三个网址时,我收到错误

异常值:[“‘create’不是有效的 UUID。”]

我了解 urls.py 将“create”作为主键,而不是将其视为其他视图的 url。

我怎样才能绕过这个问题?非常感谢。

python django django-templates django-urls django-views

0
推荐指数
1
解决办法
107
查看次数

如何在 Django 模板中显示数组值?

我有以下数组,想在模板中显示日期名称。

DAYS = ((0, "Saturday"),
        (1, "Sunday"),
        (2, "Monday"),
        (3, "Tuesday"),
        (4, "Wednesday"))
Run Code Online (Sandbox Code Playgroud)

我可以通过使用显示星期一{{ DAYS.2.1 }},但无法使用显示{{DAYS.class_weekday.key_value.1}}

我正在class_weekday.key_value从 for 循环中获取,但是当我class_weekday.key_value在那里使用时,它没有显示任何内容!

谢谢你!

python django django-templates python-3.x django-rest-framework

0
推荐指数
1
解决办法
5462
查看次数

如何在 Django 模板中迭代字典?

我正在尝试迭代 django 模板中的字典并将值保存到window.obj,但它不起作用。

视图.py:

def myView(req):
...
myDict = {'foo':"[1,2]", 'bar':"[3,4]"} 

return render(req, 'myPage.html', {'myDict':myDict})
Run Code Online (Sandbox Code Playgroud)

myPage.html:

<script type="text/javascript">
window.obj = {}
window.obj["foo"] = "{{ myDict.foo }}";

{% for key, value in myDict %}

window.obj["{{ key }}"] = "{{ value }}";

{% endfor %}
</script>

...

<script> 
console.log(window.obj.foo); //prints {foo: "[1,2]"} 
console.log(window.obj.bar); //prints undefined
</script>
Run Code Online (Sandbox Code Playgroud)

注意:我不能myDict.foo在我的实际项目中使用

我在这里缺少什么?

javascript python django django-templates python-3.x

0
推荐指数
1
解决办法
3721
查看次数

简单的 hello world 项目中 django 中的 TemplateDoesNotExist 错误

我在 django 中使用模板时遇到问题。我相信我的模板位于正确的位置,并且在查看错误日志中的路径后,该文件就在那里。我也让它在不使用的情况下工作render()。但我已经尝试了多种方法,并且在错误日志中它显示了一个路径,我可以按照该路径到达我尝试渲染的 html 文件。

这是我的项目的文件结构(注意:该文件结构实际上位于 C:\my_website 内部)

在此输入图像描述

相关代码:
下面是我创建的 hello 应用程序的视图。目前的情况是有错误,但如果我注释掉调用并使用未注释的代码,它会显示index.html C:\my_website\my_website\hello\viewsrender()的内容

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
import os
import logging #MS ADDED
logger = logging.getLogger(__name__)#MS ADDED


def index(request):
    #!!! It works with this stuff uncommented
    #index_path =  os.path.join(os.path.dirname(os.path.dirname(__file__)),'hello\\templates\\hello\\index.html')
    #logger.error('Views - index_path is ' + index_path) # MS ADDED
    #with open(index_path) as f:
    #   html_string = f.read()
    #return HttpResponse(html_string)
    return render(request, 'hello/index.hmtl')

Run Code Online (Sandbox Code Playgroud)

以下是我在设置中更改的所有内容。我在 Django 文档中读到,如果您没有指定路径,它将在您创建的应用程序的模板目录中查找(你好)。但是在 TEMPLATES 中将 …

python django django-templates

0
推荐指数
1
解决办法
398
查看次数

检查 Django 模板中的消息值

我正在 Django 网站上使用 Google ReCaptcha,并且想检查错误消息的值。如果该值为“无效的 reCAPTCHA”。请再试一次。' 然后我想在 ReCaptcha 下显示一条错误消息。但是,我设置的方式目前不起作用。

<div id="g-recaptcha-error">
  {% if messages %}
    {% for message in messages %}
      {% if message is 'Invalid reCAPTCHA. Please try again.' %}
        <span style="color:red;">{{ message }}</span>
      {% endif %}
    {% endfor %}
  {% endif %}
</div>
Run Code Online (Sandbox Code Playgroud)

如何查看验证码消息的实际值?可能存在其他错误,因此如果值不同,我不希望显示此错误。

当我在下面添加此内容时,它显示“无效的 reCAPTCHA”。请再试一次。测试' 所以我知道该消息是正确的。

{% for message in messages %}
  <p>{{ message }} test</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

django django-templates django-forms

0
推荐指数
1
解决办法
311
查看次数

如何在 Django 中搜索精确值?

我创建了一个搜索功能。但是,它会搜索包含输入值的所有元素。例如,有以下元素:44564、76436、445。当我输入“445”时,它显示“44564”和“445”,但我只需要445。或者如果我输入“64”,那么什么都不应该显示,但显示“44564”和“76436”。如何修复它?

案例列表.html

<div>
    <h3>Search</h3>
    <form method="GET" action="{% url 'case_search' %}">
        <input type="search" type="text" name="q" prequired placeholder="Put value">
        <button type="submit">Find</button>
    </form>
</div>
<div>
  {% for case in object_list %}
        <div>
            <p>{{ case.name }}</p>
        </div>
  {% endfor %}
</div>
Run Code Online (Sandbox Code Playgroud)

视图.py

class CaseView(ListView):
    model = Case
    template_name = 'case_list.html'

class CaseSearch(ListView):
    template_name = 'case_list.html'
    def get_queryset(self):
        return Case.objects.filter(name__icontains=self.request.GET.get("q"))
    def get_context_data(self, *args, **kwargs):
        context = super().get_context_data(*args, **kwargs)
        context["q"] = self.request.GET.get("q")
        return context
Run Code Online (Sandbox Code Playgroud)

网址.py

    path('case_list/', CaseView.as_view(), name='case_list'),
    path('case_list/search/', CaseSearch.as_view(), name="case_search"),
Run Code Online (Sandbox Code Playgroud)

django django-templates django-models django-forms django-views

0
推荐指数
1
解决办法
44
查看次数

Django中的用户身份验证

几个月前我学会了如何在Django中对用户进行身份验证,但是我已经升级并遇到了一些问题,所以我今天早上发现我可能从一开始就没有这么做,所以我决定问一下.

在我的项目的urls.py文件中,我有^ accounts/login/$和^ accounts/logout/$都连接到内置的login()和logout()视图(在django.contrib.auth.views)和^ accounts/profile/$连接到我写的视图,名为"start_here",其内容基本上是这样的:

def start_here(request):
    if request.user:
        user_obj = request.user
    else:
        user_obj = None
    is_auth = False
    if request.user.is_authenticated():
        is_auth = True
    return render_to_response("profile.html", {'auth': is_auth,'user': user_obj,})
Run Code Online (Sandbox Code Playgroud)

现在,"profile.html"扩展了一个名为master.html的主模板,里面是一个"navbar"块,如果'auth'== True(下面的代码段),其内容应该会改变

{% block navbar %}
            {% if auth %}
                <a href="">Link A</a>
                <a href="">Link B</a>
                <a href="">Link C</a>
                <a href="">Link D</a>
                <a href="">Link E</a>
                <a href="">Link F</a>
                <a href="/accounts/logout/">Logout</a>
            {% else %}
                <a href="/accounts/login/">Login</a>
            {% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我登录并重定向到/ accounts/profile时,导航栏不会显示Links AF + Logout,它只显示"login".除非我手动将上面的块复制粘贴到profile.html中,否则它不会按照我的预期方式工作.调用render_to_response()时,我提供的上下文是否会传递给父模板以及子模板?

master和profile.html的完整源代码:http://dpaste.com/hold/128784/ 我在代码中看不到任何可疑内容.

python authentication django django-templates

-1
推荐指数
1
解决办法
2105
查看次数