- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望这是一个很好的第一个问题。我一直在尝试干燥我的 Django 代码,但不幸的是我不断遇到几个错误! (如果我不发布有问题的代码,请原谅我 - 我只会发布有效的代码)我尝试过使用@decorators,并且还在 View 中放置了一个 View 。请帮助我!
from django.shortcuts import render_to_response, get_object_or_404, get_list_or_404
from blog.models import Post, User, Blog, Comment
from blog.forms import CommentForm, PostForm, BlogForm
from django.core.urlresolvers import reverse
import datetime
from django.http import HttpResponseRedirect
from django.template import RequestContext
from django import forms
def limiter(request):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('accounts.views.login_view'))
def postindex(request):
posts = get_list_or_404(Post.objects.all())
return render_to_response('index.html', {'posts':posts})
def onepost(request, postid):
post = get_object_or_404(Post, pk=postid)
if request.method == 'POST':
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('accounts.views.login_view'))
form = CommentForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
c = Comment(owner=request.user,
post=Post.objects.get(pk=postid),
time=datetime.datetime.now(),
text=cd['text'])
c.save()
return HttpResponseRedirect(reverse('blog.views.onepost',
args=[postid]))
else:
form = CommentForm()
return render_to_response('single.html',
{'post':post,'comments':post.comment_set.all(),
'form':form},
context_instance=RequestContext(request))
def userlist(request):
users = get_list_or_404(User.objects.all())
return render_to_response('userlist.html', {'users':users})
def bloglist(request, userid):
blogs = get_list_or_404(Blog.objects.filter(owner__pk=userid))
return render_to_response('bloglist.html', {'blogs':blogs})
def postlist(request, blogid):
posts = get_list_or_404(Post.objects.filter(blog__pk=blogid))
return render_to_response('postlist.html', {'posts':posts})
def landing(request):
return render_to_response('landing.html', {})
def dash(request):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('accounts.views.login_view'))
user = request.user
blogs = Blog.objects.filter(owner=request.user)
comments = Comment.objects.filter(owner=request.user)
posts = Post.objects.filter(blog__owner=request.user)
return render_to_response('dash.html',
{'user':user, 'blogs':blogs, 'comments':comments, 'posts':posts})
def newpost(request, blogid):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('accounts.views.login_view'))
blog = Blog.objects.get(pk=blogid)
if not request.user == blog.owner:
return HttpResponseRedirect(reverse('blog.views.dash'))
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
p = Post(title=cd['title'],
blog=Blog.objects.get(pk=blogid),
date=datetime.datetime.now(),
content=cd['content'])
p.save()
return HttpResponseRedirect(reverse('blog.views.postlist',
args=[blogid]))
else:
form = PostForm()
return render_to_response('chngpost.html',
{'blog':blog,
'form':form},
context_instance=RequestContext(request))
def editpost(request, postid):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('accounts.views.login_view'))
post = Post.objects.get(pk=postid)
if not request.user == post.blog.owner:
return HttpResponseRedirect(reverse('blog.views.dash'))
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
post.title=cd['title']
post.content=cd['content']
post.save()
return HttpResponseRedirect(reverse('blog.views.onepost',
args=[postid]))
else:
form = PostForm(initial={'title':post.title,'content':post.content})
return render_to_response('chngpost.html',
{'post':post,
'form':form},
context_instance=RequestContext(request))
def delpost(request, postid):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('accounts.views.login_view'))
post = Post.objects.get(pk=postid)
if not request.user == post.blog.owner:
return HttpResponseRedirect(reverse('blog.views.dash'))
if request.method == 'POST':
post.delete()
return HttpResponseRedirect(reverse('blog.views.dash'))
return render_to_response('delpost.html',
{'post':post},
context_instance=RequestContext(request))
def newblog(request):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('accounts.views.login_view'))
if request.method == 'POST':
form = BlogForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
b = Blog(title=cd['title'],
owner=request.user)
b.save()
return HttpResponseRedirect(reverse('blog.views.bloglist',
args=[request.user.pk]))
else:
form = BlogForm()
return render_to_response('chngpost.html',
{'form':form},
context_instance=RequestContext(request))
def delcomment(request, commentid):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('accounts.views.login_view'))
comment = Comment.objects.get(pk=commentid)
if not (request.user == comment.post.blog.owner) | (request.user == comment.owner):
return HttpResponseRedirect(reverse('blog.views.dash'))
if request.method == 'POST':
comment.delete()
return HttpResponseRedirect(reverse('blog.views.dash'))
return render_to_response('delpost.html',
{},
context_instance=RequestContext(request))
(希望格式正确)我想特别考虑的代码是
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('accounts.views.login_view'))
当然,如果有更多建议,我们将不胜感激!太感谢了! `
最佳答案
关于django - 干燥我的 Django View : Please help me!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6056888/
我有几个链接和 div,我希望它们具有相同的功能。基本上,您单击一个链接/按钮/任何选择的触发器,相应的空间幻灯片就会打开。 标记看起来像... First Second Third 到目前为
我正在尝试使用数据提供程序对多个输入运行 Jasmine 测试。为此,我尝试使用以下链接使用 jasmine-data-provider 包: http://blog.jphpsf.com/2012/
我有一个脚本,可以将用户的输入传递到completed.html 页面上,但这里有两个问题: 所有用户输入都显示在地址栏上,我想隐藏它,但我不想使用 POST 方法,这会破坏我的 JS 脚本的用途。有
DRY(不要重复自己) 假设我在我的应用程序中经常使用此代码: observable$.pipe( tap(value => console.log(value)), map(value =>
这是我正在运行的 MySQL 查询: -- get the sid of every supplier who does not supply both a red and green part SE
下面的内容可以干一点吗? if(totals[label]) { totals[label] += increment; } else { totals[label] = increm
我有这个,而且效果很好: $(document).delegate("tr.updating input, tr.updating a, tr.updating label", 'click', fu
我有一个在程序中广泛使用的简单 C++ 结构。现在我希望将结构作为单个字段保存在 sqlite 数据库中(现在不是作为 blob)。 将struct的属性映射到数据库列有什么好的方法? 最佳答案 由于
在下面的测试中,Bar 和 Baz block 包含相同的规范。 首先撇开为什么需要这样的重复不谈,我想知道如何才能把它干掉。 我尝试将 block 转换为对象并在 Bar 和 Baz 下调用它们,但
很抱歉我的菜鸟问题,但我有一个适用于大型形式的特定领域的函数。我知道我可以对每个可能的字段进行硬编码,但我想让我的代码保持干燥。我可以做什么来将这种独特的功能添加到表单中的每个字段中。 (它们都共享一
我正在用 java 编写一个程序,它本质上测试了很多东西...... 对于每次调用,我都需要检查 NullPointerExceptions、StackOverflow、IndexOutOfBound
我有一个冗长的组件,它传递了许多 Prop 。有没有更干燥的方式将该组件传递给 child ? 谢谢。 let products; if (!this.state.loading) { produ
我有许多 Angular Controller ,其中包含以下代码块(包括一些我无法分解的更具体的内容)。 {{title}} 我希望以最符合 Angular 主义的方
我正在尝试使用 jasmine 测试一些 View 代码。我需要在 View 对象处于不同的包含状态时测试某些元素的存在,而不必在每个状态下重复大量代码。 我有 NodeView 类,它表示具有一些端
我真的很享受 Django 1.8 中 setUpTestData 和 --keepdb 带来的便利! 但是,我遇到了在多个测试文件中保持数据一致的问题。我想将我的 setUpTestData 类方法
EasyMock 测试似乎倾向于遵循以下模式: @Test public void testCreateHamburger() { // set up the expectation Easy
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我有一个重复比较,我必须检查三个变量是否等于某个变量。为简单起见,我将创建一个场景来说明我遇到的问题。 if time == -1 and day_of_week == -1 and month ==
我已经在 Spring listA 中进行了配置(见下文)。最好有另一个包含 listA 中的所有值并展开它的。 a b
我有一个函数当前正在 JavaScript 中使用 .getElementBy... DOM 调用。 var $ = function (selector) { var elements = []
我是一名优秀的程序员,十分优秀!