所以现在我硬编码到 url,如果你移动端点,这会有点烦人。这是我当前的导航栏项目设置。
# in base.html
{% include 'components/navbar/nav-item.html' with title='Event Manager' url='/eventmanager/' %}
Run Code Online (Sandbox Code Playgroud)
# in components/navbar/nav-item.html
<li>
<a href="{{ url }}">{{ title }}</a>
</li>
Run Code Online (Sandbox Code Playgroud)
看看我现在如何使用该网址?
我现在想要的是这样的:
{% include 'components/navbar/link.html' with title='Event Manager' url={% url 'event_manager:index' %} %}
Run Code Online (Sandbox Code Playgroud)
但显然,这是无效的语法。我该怎么做?
如果不可能,我如何创建一个应用程序,以某种方式创建一个视图,我可以在其中传递带有上下文变量的所有 URL?从理论上讲,这听起来很简单,但我必须以某种方式将该视图插入到所有其他视图中。
我正在尝试运行一个由其他开发人员制作的 django 应用程序。首先我得到 *ModuleNotFoundError: No module named 'django_heroku'*这是通过pip install django-heroku解决的。现在我收到这个错误。
ModuleNotFoundError: No module named 'bootstrap5'
Run Code Online (Sandbox Code Playgroud)
然后我做了这个
pip install django-bootstrap5
Run Code Online (Sandbox Code Playgroud)
看起来已经安装了bootstrap5。但是当我尝试再次运行该应用程序时,我遇到了同样的错误。这是它显示的内容。
(venv) D:\django\multi-vendor-shop-management-main>python manage.py runserver
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:\Python39\lib\threading.py", line 973, in _bootstrap_inner
self.run()
File "C:\Python39\lib\threading.py", line 910, in run
self._target(*self._args, **self._kwargs)
File "D:\django\venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "D:\django\venv\lib\site-packages\django\core\management\commands\runserver.py", line 125, in inner_run
autoreload.raise_last_exception()
File "D:\django\venv\lib\site-packages\django\utils\autoreload.py", line 87, in raise_last_exception
raise _exception[1]
File …Run Code Online (Sandbox Code Playgroud) 我通常更喜欢linux编程(我在Ubuntu上的django程序).但是我经常需要设计在Windows和Linux中正确渲染的html页面吗?
iam目前如何做到这一点是
在linux中设计(修复)html页面
重新启动到Windows检查设计是否正确.如果没有重启到linux重复step1,step2
我觉得上面的过程很乏味.有没有更简单的方法来做到这一点?
我有一个appengine项目,在我的模板中我想做类似的事情
{% for i in range(0, len(somelist)) %}
{{ somelist[i] }} {{ otherlist[i] }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用'forloop.counter'来访问列表项,但这也没有用.有什么建议?
问候,复数
如果我想要一些文字在Django模板中出现,例如
{{Image.jpg|title}}
Run Code Online (Sandbox Code Playgroud)
我希望在HTML中输出(不解释)该文本,我该怎么办?
许多可重用的django应用程序不包含内部的默认模板.James Bennett在他的演示文稿中说,提供真正可移植的默认模板的Reusable Apps非常难.他补充说,他的registration应用程序的第一个版本中的大多数错误报告都与默认模板有关.
这是一个有效的观点.但是没有任何默认模板,很难理解应用程序如何被重用,因为程序员无法看到可重用的应用程序.
你有什么建议来克服这个问题?
使用标准的Django模板系统,是否有任何片段/可重复使用的模板标签将一段文本中的前n个单词包含在标签中,以便我可以设置它们的样式?
我理想的是:
{{item.description|wrap:"3 span big"}}
Run Code Online (Sandbox Code Playgroud)
哪个输出:
<span class="big">Lorem ipsum dolor</span> sit amet, consectetur adipiscing elit.
Run Code Online (Sandbox Code Playgroud)
如果出于任何原因,这将是不可行或非常难以获得的,我可以使用JavaScript并在客户端执行,但我希望能够在页面输出上执行此操作.
我有django对象:
class Event(models.Model):
title = models.CharField(max_length=255)
event_start_date = models.DateField(null=True, blank='true')
...
class RegistrationDate(models.Model):
event = models.ForeignKey(tblEvents)
date_type = models.CharField(max_length=10, choices=registration_date_type)
start_date = models.DateField(blank='true', null='true')
end_date = models.DateField(blank='true', null='true')
Run Code Online (Sandbox Code Playgroud)
事件可以具有早期,正常和晚期注册期.
我写了一个函数,它接受一个事件并返回以下之一:None,"Early","Normal"或"Late"
一切都很好.
在我的应用程序中,我想显示一个事件列表以及它们的注册状态.所以我这样做了一个查询.
Events = tblEvents.objects.all()
Run Code Online (Sandbox Code Playgroud)
所以我有关于事件的所有信息,但没有状态.
获取模板中显示的每个事件的状态的最简单/最佳方法是什么.
我认为我可以编写一个模板标签,但这似乎更多的工作应该是必要的.
我正在运行Django 1.2 beta并试用新功能:消息框架.
http://docs.djangoproject.com/en/dev/ref/contrib/messages/
一切似乎都有效,但当我尝试输出消息时,我什么也得不到.似乎messages变量是空的.我仔细检查了所有设置,它们似乎就像在手册中一样.可能有什么不对?
settings.py
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.messages.middleware.MessageMiddleware', #send messages to users
'django.middleware.locale.LocaleMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
#debug tool
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.messages.context_processors.messages', #send messages to users
'django.core.context_processors.auth',
)
#Store messages in sessions
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage';
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
#'django.contrib.sites',
'django.contrib.admin',
'django.contrib.messages',
'debug_toolbar',
#my apps
#...
)
Run Code Online (Sandbox Code Playgroud)
views.py
def myview(request):
from django.contrib import messages
messages.error(request, 'error test');
messages.success(request, 'success test');
return render_to_response('mytemplate.html', locals());
Run Code Online (Sandbox Code Playgroud)
mytemplate.html
{% for message in messages %}
{{ message …Run Code Online (Sandbox Code Playgroud) 我有2个数组,我想在模板中呈现,一个是要输出的数据,另一个是用于删除项目的formset.因为似乎django不支持模板标签中的布尔运算符,所以我尝试打包项目,但它们只返回第一个项目和第一个表格.
如何打包这些项目,以便它们在一个for循环中呈现.
我的看法
@login_required
def forums(request ):
post = list(forum.objects.filter(child='0')&forum.objects.filter(deleted='0'))
user = UserProfile.objects.get(pk=request.session['_auth_user_id'])
newpostform = PostForm(request.POST)
deletepostform = PostDeleteForm(request.POST)
DelPostFormSet = modelformset_factory(forum, exclude=('child','postSubject','postBody','postPoster','postDate','childParentId'))
readform = ReadForumForm(request.POST)
if newpostform.is_valid():
topic = request.POST['postSubject']
poster = request.POST['postPoster']
newpostform.save()
newpostform = PostForm(initial = {'postPoster':user.id})
post = list(forum.objects.filter(child='0')&forum.objects.filter(deleted='0'))
else:
newpostform = PostForm(initial = {'postPoster':user.id})
if request.method == 'POST':
delpostformset = DelPostFormSet(request.POST)
if delpostformset.is_valid():
delpostformset.save()
else:
delpostformset = DelPostFormSet(queryset=forum.objects.filter(child='0', deleted='0'))
"""if readform.is_valid():
readform.save()
else:
readform = ReadForumForm()"""
return render_to_response('forum.html', {'post':( post,delpostformset.forms), 'newpostform': newpostform, })
Run Code Online (Sandbox Code Playgroud)
我的模板
<table …Run Code Online (Sandbox Code Playgroud) django-templates ×10
django ×9
python ×6
django-views ×3
templates ×2
code-reuse ×1
css ×1
django-urls ×1
html ×1
literals ×1
xhtml ×1