django暂缓创建对象
我正在尝试使用Django,但在创建新对象时遇到了问题 而在一个普通的Django观点中我会django暂缓创建对象,django,rest,Django,Rest,我正在尝试使用Django,但在创建新对象时遇到了问题 而在一个普通的Django观点中我会 def post_new(request): if request.method == 'POST': form = PostForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect("/posts/")
def post_new(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect("/posts/")
else:
form = PostForm()
ctx = {'form': form}
return render_to_response('app_post/new_post.html', ctx, RequestContext(request))
我尝试将其移植到respite(doc只讨论GET方法),我得出以下结论:
# views.py
class PostViews(Views):
supported_formats = ['html', 'json']
template_path = 'post/'
def index(self, request):
...
def show(self, request, id):
...
def create(self, request):
form = PostForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect("posts/")
return self._render(
request = request,
template = 'new_post',
context = {
'form': form
},
)
def new(self, request):
form = PostForm()
return self._render(
request = request,
template = 'new_post',
context = {
'form': form
},
)
# urls.py
urlpatterns = resource(
prefix = 'posts/',
views = PostViews,
routes = [
routes.route(
regex = r'^(?:$|index%s$)' % (templates.format),
view = 'index',
method = 'GET',
name = 'posts'
),
routes.route(
regex = r'^(?P<id>[0-9]+)%s$' % (templates.format),
view = 'show',
method = 'GET',
name = 'post'
),
# New
routes.route(
regex = r'^(?:$|new%s$)' % (templates.format),
view = 'new',
method = 'GET',
name = 'post_new'
),
# Create
routes.route(
regex = r'^(?:$|create%s$)' % (templates.format),
view = 'create',
method = 'POST',
name = 'post_create'
)])
我明白了
有人可以向我解释如何暂时管理帖子和表单吗?您向
http://localhost:8000/projects/new.html
-获取还是发布?嗨,约翰,我正在发送获取请求。我假设你的问题中有一个打字错误,并且你的路线前缀实际上是projects/
,而不是posts/
,或者反过来说,对吗?对不起,这是问题中的一个打字错误,我们只讨论posts
,所以前缀是posts/
(我编辑了这个问题,谢谢注意)。但是我不明白为什么会出现这个错误……是的,这可能没有关系,但我只是想确定一下。我也不知道你为什么会出错;代码在我看来非常好。不过,我会尝试复制这个。
http://localhost:8000/posts/new.html
'PostViews' object has no attribute 'new'