我在用着Django 2.0
我有一张Note桌子和StarredNotes一张桌子。
最初,没有id字段,因为它是默认添加的数据Django类型integer。
现在我已将模型中的数据类型更改id为UUID
模型.py
class Starred(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
user = models.ForeignKey(User, on_delete=models.CASCADE)
note = models.ForeignKey(Note, on_delete=models.CASCADE)
objects = StarredManager()
class ColorLabels(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
title = models.CharField(max_length=100, unique=True)
value = models.CharField(max_length=100)
default = models.BooleanField(default=False)
updated = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title + '(' + self.value + ')'
Run Code Online (Sandbox Code Playgroud)
和views.py
class StarredNotes(ListView):
template_name = 'notes/starred.html'
model = …Run Code Online (Sandbox Code Playgroud) 在我的 DRF 项目中,我有 2 个应用程序,Users并且Products. Products有 2 个型号:Category和Product。我的根 URL conf 看起来像这样
api_urls = [
path('users/', include('users.urls')),
path('products/', include('products.urls'))
]
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include(api_urls))
]
Run Code Online (Sandbox Code Playgroud)
和 products.urls
urlpatterns = [
path('', views.ProductListCreateAPIView.as_view())
]
Run Code Online (Sandbox Code Playgroud)
我希望我的 API 方案是这样的
/api/users/
/api/products/
/api/categories/
Run Code Online (Sandbox Code Playgroud)
现在,这对于前两个 URL 来说效果很好,但显然不适用于第三个,即如果我要添加
path('categories', views.CategoriesListCreateAPIView.as_view())
Run Code Online (Sandbox Code Playgroud)
对于我的 products.urls,URL 方案将是
/api/products/categories/
Run Code Online (Sandbox Code Playgroud)
我的问题是,有没有办法在/api/categories/不分裂Category成自己的应用程序的情况下实现目标?我觉得它太微不足道了,不足以保证拥有自己的应用程序,并且应该与Product. 显然,我想我可以直接在根 URL conf 中导入视图,但这感觉不像是一个“干净”的解决方案。我应该考虑为类别创建一个单独的应用程序吗?产品模型与类别有外键关系,对我来说,感觉好像两个独立的应用程序只会让事情变得复杂。
我知道在模板文件中我可以包含此代码,它将返回链接列表
{% for q in all %}
<ul>
<li><a href={% url 'detail' q.id %}>{{ q.question_text }}</a></li>
</ul>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
'detail'现在 django 将在我的应用程序目录的文件中搜索该名称,并自动为该参数urls.py提供 的值。q.id但是,如果我的 url 包含多个变量怎么办?所以这里我只能给出一个论点,即q.id。但如果我想给出多个论点怎么办?希望我清楚
我正在开发一个简单的博客来学习 Django。我希望每个帖子都有一个这样的路径:
- /category-1/标题帖子
- /category-2/标题帖子
- ETC..
下面是urls.py
from django.urls import include, path
from .views import CategoryList, PostList, SingleCategory, SinglePost, SingleTag, TagList
urlpatterns = [
path("", PostList.as_view(), name="list_post"),
path("<slug:slug>", SinglePost.as_view(), name="single_post"),
path("tags/", TagList.as_view(), name="list_tag"),
path("tags/<slug:slug>", SingleTag.as_view(), name="single_tag"),
path("categories/", CategoryList.as_view(), name="list_category"),
path("categories/<slug:slug>", SingleCategory.as_view(), name="single_category"),
]
Run Code Online (Sandbox Code Playgroud)
和views.py
from django.shortcuts import render
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView
from .models import Category, Post, Tag
# Create your views here.
class CategoryList(ListView):
model = Category
context_object_name = 'category_list'
template_name = "list_category.html"
class …Run Code Online (Sandbox Code Playgroud) 我想呈现模板上所有对象的列表,其作者是当前登录的用户。我将当前用户的用户名传递给url.py:
<a href="{% url 'myscenarios' user.username %}">My List</a>
Run Code Online (Sandbox Code Playgroud)
我的网址.py:
path('myscenarios/<str:username>/', MyScenarioListView.as_view(), name='myscenarios'),
Run Code Online (Sandbox Code Playgroud)
我的问题是如何构建查询集views.py以及在 html 中的模板块中输入什么内容?
class MyScenarioListView(LoginRequiredMixin, ListView):
model = Scenario
template_name = 'testmanager/myscenarios.html'
context_object_name = 'myscenarios'
def get_queryset(self):
user = get_object_or_404(User, username=self.kwargs.get('username'))
return Scenario.objects.filter(scenarioAuthor = user).order_by('-date_posted')
Run Code Online (Sandbox Code Playgroud)
我应该在文件中输入什么代码myscenarios.html?
我为注册页面制作了网址。但它返回 404 错误。所有其他网址都运行良好。
我不知道原因。
主要网址
urlpatterns = [ 路径('admin/', admin.site.urls), 路径('', include('mobileWeb.urls')), 路径('api/', include('api.urls')), ]
应用程序网址
url 模式 = [
path('', views.index, name='index'),
path('index', views.index, name='index'),
path('addComment', views.addComment, name='addComment'),
# users
path('signUp', views.signUp, name='signUp'),
path('accounts/', include('allauth.urls')),
path('martDetail/<int:martId>', views.martDetail, name='martDetail'),
path('trade/<int:itemId>', views.trade, name='trade'),
path('registerMart', views.registerMart, name='registerMart'),
path('registerItem', views.registerItem, name='registerName'),
path('delete', views.delete, name='delete'),
path('deleteMart', views.deleteMart, name='deleteMart'),
path('deleteItem', views.deleteItem, name='deleteItem'),
path('purchaseItem', views.purchaseItem, name='purchaseItem'),
path('selectItem', views.selectItem, name='selectItem'),
path('addStatistics', views.addStatistics, name='addStatistics'),
path('viewStatistics', views.viewStatistics, name='viewStatistics'),
path('imtPosRegister', views.imtPosRegister, name='imtPosRegister'),
path('imtPosRegisterTest', views.imtPosRegisterTest, name='imtPosRegisterTest'),
path('imtPosSaleInfoTest', views.imtPosSaleInfoTest, name='imtPosSaleInfoTest'),
path('imtPosSaleConfirmTest', views.imtPosSaleConfirmTest, …Run Code Online (Sandbox Code Playgroud)我已经为我的项目的主模板创建了一个应用程序(所有其他模板都继承自此模板)。该模板包括页眉、页脚和旁白,我可以在其中从管理面板添加和删除帖子。现在,在渲染所有模板时,所有内容(页眉、页脚和相应的{% block content %})都会正确显示,但不会在旁边显示,因为我没有将任何 url 传递给管理它的视图。
我试图将该视图传递给项目的每个 URL,以便始终显示旁边的内容。我只是不明白该怎么做。
只是为了澄清:按照我现在要显示的代码,旁边localhost:8000仅显示。不在localhost:8000/inicio或任何其他网址中。
除了views.py
from django.shortcuts import render
from .models import asides
def post_aside(request):
aside_posts = asides.objects.all()
return render(request, "main/main.html", {"aside_posts" : aside_posts})
Run Code Online (Sandbox Code Playgroud)
应用程序的 urls.py 和旁边
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_aside, name='main'),
]
Run Code Online (Sandbox Code Playgroud)
项目的urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', …Run Code Online (Sandbox Code Playgroud) 我正在使用Python与django框架的Web应用程序.我已经创建了一个urls.py条目来提供robots.txt文件,但由于某种原因,它似乎无法提供服务.
url(r'^robots.txt$', 'support.views.robot_file',name="robot_file"),
Run Code Online (Sandbox Code Playgroud)
此方法适用于具有非常相似的条目的sitemap.xml
url(r'^sitemap.xml', 'support.views.sitemap_file',name="sitemap_file"),
Run Code Online (Sandbox Code Playgroud)
这让我相信只服务robots.txt文件是一个问题,因为当我改变它以服务robot.txt它的工作原理.
有人可以提出一些指示,说明为什么会发生这种情况?
导致此urls.py语法错误的原因是什么?
它说
syntax error at Line 27[(r'^xd_receiver\.html$',.....] in ursl.py.
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚问题出在哪里.
urlpatterns = patterns('',
# Example:
# (r'^universityDB/', include('universityDB.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)),
(r'^registrationForm/$','universityDB.universityDetails.views.registrationForm'),
(r'^userDetails/$','universityDB.universityDetails.views.userDetails'),
(r'^login/$','universityDB.universityDetails.views.login'),
(r'^userCreated/$','universityDB.universityDetails.views.userCreated'),
(r'^forgotPassword/$','universityDB.universityDetails.views.forgotPassword'),
(r'^passwordRecovery/$','universityDB.universityDetails.views.passwordRecovery'),
(r'^accounts/profile', 'universityDB.universityDetails.views.profile'),
(r'^xd_receiver\.html$', direct_to_template, {'template': 'xd_receiver.html'}, name='xd_receiver'),
(r'^login_facebook_connect/$', 'login_facebook_connect', name='facebook_connect_ajax'),
)
Run Code Online (Sandbox Code Playgroud) 我有点难过.在开发中,我正在尝试为DJango 1.3中的应用程序提供静态和动态文件.我喜欢新的静态功能,但我似乎无法使其正常工作.
当我阅读文档时,看起来以下内容应该可行.它提供动态的东西很好,但不是静态的.
urlpatterns += staticfiles_urlpatterns()
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^media/dynamic/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT,
}),
)
Run Code Online (Sandbox Code Playgroud) django ×10
django-urls ×10
python ×3
django-2.0 ×1
django-2.1 ×1
django-views ×1
redirect ×1
robots.txt ×1
url ×1