从 Django 数据库条目生成 html 页
Generating html pages off Django database entries
我正在尝试获取 url 映射以遵循此示例
/user/user-name/list/list-name-goes-here
我创建了这个正则表达式(不确定它是否正确)
url(r'^user/(\w+)/list/(?P<listname>\w+)/$', mylistpage, name='lists'),
因此,用户目前可以插入一系列列表,并打印到他们的主要个人资料页面上。我希望他们单击列表并让它显示另一个 html 页面,列表名称为 header。
列表可以有空格,所以我需要以某种方式进行修改。
我目前收到此错误:
mylistpage() takes exactly 3 arguments (2 given)
查看
def mylistpage(request, username, listname):
context = RequestContext(request)
if username == request.user.username:
if request.user.is_authenticated():
user = User.objects.get(username=username)
listname = request.user.newlist_set.filter(list_name__startswirth=listname)
return render_to_response('listview.html', {'lista': listname}, context)
型号
class newlist(models.Model):
user = models.ForeignKey(User)
list_name = models.CharField(max_length = 100,)
picture = models.ImageField(upload_to='profiles/', default = "/media/profiles/default.jpg")
def __str__(self):
return self.list_name
您需要在正则表达式中命名两个参数:
url(r'^user/(?P<username>\w+)/list/(?P<listname>\w+)/$', mylistpage, name='lists'),
有关 Django documentation: URL Dispatcher: Named groups 的更多信息。
更新:回答评论,如果没有 username
或 listname
则重定向到 404,这将在视图中处理。例如:
User.objects.get_object_or_404(username=username)
和
from django.http import Http404
if not listname:
raise Http404("blah blah..")
您忘记将用户名传递给视图:
url(r'^user/(?P<username>\w+)/list/(?P<listname>\w+)/$', mylistpage, name='lists'),
我正在尝试获取 url 映射以遵循此示例
/user/user-name/list/list-name-goes-here
我创建了这个正则表达式(不确定它是否正确)
url(r'^user/(\w+)/list/(?P<listname>\w+)/$', mylistpage, name='lists'),
因此,用户目前可以插入一系列列表,并打印到他们的主要个人资料页面上。我希望他们单击列表并让它显示另一个 html 页面,列表名称为 header。 列表可以有空格,所以我需要以某种方式进行修改。
我目前收到此错误:
mylistpage() takes exactly 3 arguments (2 given)
查看
def mylistpage(request, username, listname):
context = RequestContext(request)
if username == request.user.username:
if request.user.is_authenticated():
user = User.objects.get(username=username)
listname = request.user.newlist_set.filter(list_name__startswirth=listname)
return render_to_response('listview.html', {'lista': listname}, context)
型号
class newlist(models.Model):
user = models.ForeignKey(User)
list_name = models.CharField(max_length = 100,)
picture = models.ImageField(upload_to='profiles/', default = "/media/profiles/default.jpg")
def __str__(self):
return self.list_name
您需要在正则表达式中命名两个参数:
url(r'^user/(?P<username>\w+)/list/(?P<listname>\w+)/$', mylistpage, name='lists'),
有关 Django documentation: URL Dispatcher: Named groups 的更多信息。
更新:回答评论,如果没有 username
或 listname
则重定向到 404,这将在视图中处理。例如:
User.objects.get_object_or_404(username=username)
和
from django.http import Http404
if not listname:
raise Http404("blah blah..")
您忘记将用户名传递给视图:
url(r'^user/(?P<username>\w+)/list/(?P<listname>\w+)/$', mylistpage, name='lists'),