标签: django-templates

嵌套的 {% block %} 语句运行独立于 {% if-statement %} 有效性 Django

在 Django v1.4.3 下

为什么下面的 Django 模板案例 1 中的 if 语句总是显示块语句的内容,而与 if 语句是否为 TRUE 无关?

模板中的块语句是否总是在 if 语句之前执行?(也许我在文档中错过了这一点。)

View.py(请注意,为了测试目的故意“不”提供map_url):

def post_address(request):
    return render_to_response(
        'record/post_address.html',
        {'form': form},
        context_instance=RequestContext(request)
    )
Run Code Online (Sandbox Code Playgroud)

base_integrated_form.html 父模板包含

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

post_address.html(两种情况)Django模板案例1:(将块语句嵌套在if语句中将导致块语句的内容始终显示在浏览器中,与是否map_url提供或NOT无关。)

{% extends "base_integrated_form.html" %}
{% if map_url %}
   {% block after_form %}
   <div style="max-width:555px; height:240px; margin-left:auto; margin-right:auto;">
        <iframe id="map" width="100%" height="100%" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="{{ map_url }}" style="border: 0px solid black"></iframe>
    </div>
    {% endblock after_form %}
{% endif …
Run Code Online (Sandbox Code Playgroud)

django django-templates django-views

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

使用 django 选择网页语言

我正在开发一个多语言博客,django 文档中的示例代码对我有用

<form action="/i18n/setlang/" method="post">
        {% csrf_token %}
        <select name="language">
            {% get_language_info_list for LANGUAGES as languages %}
            {% for language in languages %}
            <option value="{{ language.code }}">{{ language.name_local }} ({{ language.code }})</option>
            {% endfor %}
        </select>
        <input type="submit" value="Go" />
    </form>
Run Code Online (Sandbox Code Playgroud)

该表单让用户选择他们想要的语言。但我实际上想以链接的形式放置它,例如: [FR][EN][VI] 我如何在模板中实现它?

python django django-templates internationalization

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

Jinja2 模板超级函数未使用 django 渲染

我有两个非常简单的模板,例如

索引.html:

<html>
    <head>
    </head>
    <body>
        {% block content %}hello{% endblock %}
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

和详细信息.html

{% extends "index.html" %}
{% block content %}{{ super() }} world{% endblock %}
Run Code Online (Sandbox Code Playgroud)

但是当我使用details.html渲染视图时出现此错误

Could not parse the remainder: '()' from 'super()'
Run Code Online (Sandbox Code Playgroud)

我需要进口一些东西吗?

(在我使用 super() 函数之前,模板会正确呈现)

django django-templates

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

检查模板中的用户权限(不是请求用户)

您好,有什么方法可以检查模板中自定义用户 nit 请求用户的权限。代码示例:

{% for agency_user in users %}
    <tr>
        <td>{{ agency_user.username }}</td>
        <td>{{ agency_user.get_full_name }}</td>
        <td>{{ agency_user.groups.all.first.name }}</td>
        <td>{{ agency_user.min_price }}</td>
        <td>{{ agency_user.max_price }}</td>
        {% if agency_user|has_perm:'may_see_commerce_sell' %} #not working
            <td>some action</td>
        {% else %}
            <td>some action</td>
        {% endif %}
        <td>
            <a href="{% url 'user_edit' agency_user.id  %}" class="edit icon"></a>
            <a user-id="{{ agency_user.id }}" class="trash icon" title="some action"></a>
        </td>
    </tr>
    {% empty %}
        <td style="text-align: center" colspan="11">some action</td>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

或者我必须为每个用户权限编写自定义模型方法?

类似于在 Profile 模型中思考:

def sell_commerce(self):
    if self.has_perm('may_see_commerce_sell'):
        return …
Run Code Online (Sandbox Code Playgroud)

django django-templates django-permissions

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

向用户添加徽章以在 Django 中执行任务

嗨 Djangonauts,今天大家好吗,我是 Django 的新手,所以请原谅逻辑或代码中的任何愚蠢错误。我有一个用户、一个 User_Profile 和一个帖子模型。我想为用户发布的帖子数量提供用户徽章。例如,如果用户发布 3 个帖子,他/她将获得初学者徽章等等......

以下是我的用户个人资料models.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    profile_image = models.ImageField(default='', blank=True, null=True)
    badge_image = models.ImageField(default='', blank=True, null=True)#maybe default can be "static/images/beginner_image.jpg" but it does not work 
Run Code Online (Sandbox Code Playgroud)

帖子模型.py

User = get_user_model()
class Post(models.Model):
    user = models.ForeignKey(User, related_name='posts')
    title = models.CharField(max_length=250, unique=True)  
    slug = models.SlugField(allow_unicode=True, unique=True)
    message = models.TextField()
Run Code Online (Sandbox Code Playgroud)

现在我想实现这样的目标:

 user = User.objects.get(username=request.user.username)
    if user.posts.count >= 3 :
             badge_image = '<img src="some image">'# I don't know how to make a image variable in …
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-models django-views

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

在模板 django 中呈现外键 __str__ 方法

class A(models.Model):
   field1 = models.CharField(max_length=10)   
   field2 = models.IntegerField(default=0)

  def __str__(self):
    return self.field1 + str(self.field2)

class B(models.Model):
  a = models.ForeignKey(A)
  ...
Run Code Online (Sandbox Code Playgroud)

现在在模板中,我想通过 using:{{ binstance.a }}呈现模型 B 实例的“a”属性: 但这似乎要么呈现空字符串,要么根本不呈现。

如何在模板中呈现外键的str方法?

django django-templates django-models

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

如何在脆皮字段中循环

如何在表格中排列表格?

我有一个正常的表格,我像这样在我的模板中安排它。

<table border="0" >
    {% for field in form %}
        <tr >
            <td>
                <label for="{{ field.label }}">{{ field.label_tag }}
                    {% if field.field.required %}<span style="color:red"; class="special_class">*</span>{% endif %}</label>
            </td>
            <td>
                {{ field }}
            </td>
        </tr>
    {% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)

现在我想使用脆皮形式。但不知道如何显示我的表单。

原因是它与此有关。

{% load crispy_forms_tags %}
{% crispy form %}
Run Code Online (Sandbox Code Playgroud)

但这并没有很好地安排我的田地,

如何通过循环访问这些字段?任何帮助将不胜感激。

django django-templates django-forms django-crispy-forms

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

Django:精确查找的 QuerySet 值必须使用切片限制为一个结果

我正在做一个项目,管理员可以将团队分配给经理。但它不起作用,我不知道它将如何工作。因为它引发了一个错误,指出“精确查找的 QuerySet 值必须限制为使用切片的一个结果。”

这是我的model.py

class manager(models.Model):
name = models.CharField(max_length= 500)
designation = models.CharField(max_length= 500)
user = models.ForeignKey(User,on_delete=models.CASCADE)
class Meta:
    permissions = [
        ("edit_task", "can edit the task"),
    ]
Run Code Online (Sandbox Code Playgroud)

这是我的经理团队的 views.py 文件

@login_required (login_url= 'have the url where it will go')
@permission_required('have the permission that is assigned by me')
def supervisor(request):
return render(request, 'manager/index-3.html')

def supervisor_team(request):
print(request.user.email)
email=request.user.email
obj= Create_Team.objects.filter(status='Accept', 
managers=manager.objects.filter(user__email=email))
return render(request, "manager/accept_team.html", {"object": obj})
Run Code Online (Sandbox Code Playgroud)

这是我的模板

<div class="body table-responsive">
                        <table class="table table-hover">
                            <thead>
                                <tr>
                                    <th>S No.</th>
                                    <th>COMPANY NAME</th>
                                    <th>TEAM MEMBER</th> …
Run Code Online (Sandbox Code Playgroud)

django django-templates django-models django-views

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

Django模板对象未显示

所以我遇到了这个奇怪的事情。我无法在模板中传递数据,除非它在 ​​forloop 中。

例如..我几乎可以在 for 循环内打印一个变量,但在 forloop 之外的东西没有显示出来。

{{listings.make}} <<<< This isn't printing


{% for listing in listings %}
   <p>{{listing.make}}</p> <<<< This is printing
{% endfor%}
Run Code Online (Sandbox Code Playgroud)
def search(request):
    queryset_list = Vehicle.objects.all()

    context = {

        'listings': queryset_list
    }

    return render (request, 'mainapp/new_listing.html', context)

Run Code Online (Sandbox Code Playgroud)
class Vehicle(models.Model):
    year = models.CharField(max_length=4, choices=YEAR)
    make = models.CharField(max_length=50, default="")
    model = models.CharField(max_length=50, default="")
    version = models.CharField(max_length=50, default="")
    description = models.TextField(max_length=50, default="")

    def __str__(self):
        return self.make

Run Code Online (Sandbox Code Playgroud)

知道实际发生了什么。如您所见,我使用的是基于函数的视图。

谢谢

django django-templates django-views

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

如何重定向到另一个包含 django 中的 ID 的页面

我在 view.py 文件中有这个函数,我在它上面传递一个 ID 并渲染某个页面

def more_about_child(request,pk):
    child = get_object_or_404(Child_detail,pk=pk)
    academic = Academic.objects.filter(Student_name=child)  
    context={ 
        'child':child, 
        'academic':academic,
    }
    return render(request,'functionality/more/more.html',context)
Run Code Online (Sandbox Code Playgroud)

而这个 urls.py 文件属于上面的 views.py 文件

from . import views
from django.urls import path

urlpatterns=[
    #more_about_child
    path('more/<int:pk>/',views.more_about_child,name='more'),
]
Run Code Online (Sandbox Code Playgroud)

然后我有这个功能,我想重定向到包含上述 urls.py 文件中的 id 的页面

def add_academy(request,pk):
    child = get_object_or_404(Child_detail, pk=pk)
    academic = Academic.objects.get(Student_name=child)
    form = AcademicForm(request.POST, instance=academic)
    if form.is_valid():
        form.save()
        return redirect('more') #it fails to redirect to this url,because it contain an ID in it
    else:
        form=AcademicForm()
    context = {
        'academic':academic,
        'child':child,
        'form':form, …
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-urls django-views

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