我正在尝试使用此代码使用django内置的"默认"过滤器
{% load sekizai_tags static compress i18n %}
[...]
<title>{{ title|default:"nothing" }}</title>
Run Code Online (Sandbox Code Playgroud)
但它给了我以下例外
django.template.base.TemplateSyntaxError: default requires 2 arguments, 1 provided
Run Code Online (Sandbox Code Playgroud)
我在模板后端使用以下设置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
str(APPS_DIR.path('templates')),
],
'OPTIONS': {
'debug': DEBUG,
'loaders': [
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
],
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'allauth.account.context_processors.account',
'allauth.socialaccount.context_processors.socialaccount',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
'sekizai.context_processors.sekizai',
],
},
},
]
Run Code Online (Sandbox Code Playgroud)
我的编辑器将代码标记为无效,但我检查了几千次 https://docs.djangoproject.com/en/1.8/ref/templates/builtins/
这是作为例子给出的:
{{ value|default:"nothing" }}
Run Code Online (Sandbox Code Playgroud)
我还尝试更改title var的名称,以确保它不是保留关键字.
我在Django中有两个模型:User(由Django预定义)和UserProfile.这两个通过外键连接.我正在创建一个允许客户编辑其用户个人资料的表单.因此,此表格将基于所提到的两种模型.
如何为此表单创建save()方法?完成保存功能有哪些步骤/要求?
这是我到目前为止在forms.py中所拥有的:
class UserChangeForm(forms.Form):
#fields corresponding to User Model
email = forms.EmailField(required=True)
first_name = forms.CharField(max_length = 30)
last_name = forms.CharField(max_length = 30)
password1 = forms.CharField(max_length=30, widget=forms.PasswordInput)
password2 = forms.CharField(max_length=30, widget=forms.PasswordInput)
#fields corresponding to UserProfile Model
gender = forms.CharField(max_length = 30, widget=forms.Select)
year = forms.CharField(max_length = 30, widget=forms.Select)
location = forms.CharField(max_length = 30, widget=forms.Select)
class Meta:
fields = ("username", "email", "password1", "password2", "location", "gender", "year", "first_name", "last_name")
def save(self):
data = self.cleaned_data
# What to do next over here?
Run Code Online (Sandbox Code Playgroud)
这是一个好的开始,还是有人建议在我们开始编写save()函数之前更改它?
我是Django的新手,只是按照Django官方文档,但这是一个问题.
我创建了一个新的Django项目
Django 1.8.2 + PyCharm 4.5.1 + Python 3.4.3 + Windows 8.1
- mysite
- main
- migrations
__init__.py
__init__.py
admin.py
models.py
tests.py
views.py
- mysite
__init__.py
settings.py
urls.py
wsgi.py
- templates
hello.html
db.sqlite3
manage.py
Run Code Online (Sandbox Code Playgroud)
其中大部分是自动创建的,我修改如下:
模板/ hello.html的
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>Django test</title>
</head>
<body>
hello world!
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
mysite的/ urls.py
from django.conf.urls import include, url
from django.contrib import admin
from main.views import hello
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^hello/$', hello),
]
Run Code Online (Sandbox Code Playgroud)
主/ views.py
from …Run Code Online (Sandbox Code Playgroud) 给定一个电子邮件地址(例如:goelv@example.com),如何验证域("example.com")是否包含在给定的域列表中.如果域("example.com")不在指定的列表中,则表单应该引发某种错误.
这就是我目前在forms.py中所拥有的
class UserCreationFormExtended(UserCreationForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = ("username", "email", "password1", "password2",)
def clean_email(self):
data = self.cleaned_data['email']
domain = data.split('@')[1]
domain_list = ["gmail.com", "yahoo.com", "hotmail.com",]
if domain not in domain_list:
raise forms.ValidationError["Please enter an Email Address with a valid domain"]
return data
def save(self, commit=True):
user = super(UserCreationFormExtended, self).save(commit=False)
user.email = self.cleaned_data["email"]
if commit:
user.save()
return user
Run Code Online (Sandbox Code Playgroud)
使用此代码,我得到错误"'type'对象没有属性' getitem '",它跟踪我的代码中的"raise forms.ValidationError [...]"行.
谁能看到我做错了什么?谢谢您的帮助!
我是django rest api developpement的新手.我有两个模型,一个是类别,另一个是子类别.这是我的模特
class Category(models.Model):
title = models.Charfield()
brief = models.TextField()
subcategories = model.ManyToManyField('Subcategory', blank=True)
Run Code Online (Sandbox Code Playgroud)
我的序列化程序类
class CategorySerializer(serializers.ModelSerializer):
title= serializer.Charfield()
subcategories = Relatedfield(many=True)
Run Code Online (Sandbox Code Playgroud)
现在在视野中
def post(self, request, format = None):
data=request.DATA
serialize= CategorySerializer(data=request.DATA)
if serializer.valid():
serializer.save()
Run Code Online (Sandbox Code Playgroud)
如何{'title':"test",'subscategories':[{'description':'bla bla bla'},{'description':'test test'}]}在post方法中保存嵌套数据.
我在文档中读过这个
注意:嵌套序列化程序仅适用于只读表示形式,因为如果在更新实例时使用它们,则会出现模糊或不明显的行为.对于读写表示,您应始终使用FlatField子类之一来使用平面表示.
请让我建议哪些是正确的方法或解决方案来做django休息的嵌套关系post/put.
我是django的新手,也是学习的过程.在做一些教程练习时遇到了一些我需要帮助的错误.
错误:/ blog处的ImportError.没有名为urls的模块
名为"blog"的应用程序下的urls.py文件是
from django.conf.urls.defaults import patterns, include, url
from mysite.blog.views import archive
urlpatterns = patterns('',
url(r'^$',archive),
)
Run Code Online (Sandbox Code Playgroud)
名为"blog"的应用程序下的views.py文件是
# Create your views here.
from django.template import loader, Context
from django.http import HttpResponse
from mysite.blog.models import Blogpost
def archive(request):
posts = BlogPost.objects.all()
t = loader.get_template("archive.html")
c = context({'posts': posts })
return HttpResponse(t.render(c))
Run Code Online (Sandbox Code Playgroud)
项目'mysite'下的urls.py文件是
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples: …Run Code Online (Sandbox Code Playgroud) 在 Python/Django 中,我有一个 FormView,它允许您临时添加某些字段选择。
(示例:从苏打水下拉列表中选择苏打水)
选择最喜欢的苏打水:[_Soda_Choices_Dropdown_] +添加苏打水
我希望能够即时添加苏打水,当我保存苏打水时,我希望成功 URL 是将您带到那里的页面。
【第1页】-->【新建汽水FormView】--成功->【第1页】
实现这一目标的最佳方法是什么?
谢谢!
根据代码,图像应该显示在index.html模板上,但似乎有一些问题img src
我的 models.py
from django.db import models
class Rockinfo(models.Model):
rock_name = models.CharField(max_length=200,default="ac/dc")
rock_img = models.ImageField(upload_to="%Y/%m/%d",default="1992/08/92")
rank = models.IntegerField(default=0)
def __str__(self):
return self.rock_name
Run Code Online (Sandbox Code Playgroud)
我的 admin.py
from django.contrib import admin
from .models import Rockinfo, Rockvids
class ChoiceInline(admin.TabularInline):
model = Rockvids
extra = 10
class RockinfoAdmin(admin.ModelAdmin):
fieldsets = [
('The Fucking Band', {'fields': ['rock_name']}),
('Image', {'fields': ['rock_img']}),
]
inlines = [ChoiceInline]
list_display = ('rock_name', 'rock_img')
list_filter = ['rank']
search_fields = ['rock_name']
admin.site.register(Rockinfo, RockinfoAdmin)
Run Code Online (Sandbox Code Playgroud)
我的申请 urls.py
from django.conf.urls import url …Run Code Online (Sandbox Code Playgroud) django ×8
python ×6
django-forms ×2
built-in ×1
django-views ×1
filter ×1
formview ×1
templates ×1
validation ×1