2017-07-31 39 views
0

我在Django中构建应用程序,我有一个名为User的模型和一个称为Profile的视图。当我添加一个用户对象时,我想自动生成一个新的模板username-profile.html对应于新的用户对象。有可能做到这一点,否则我将不得不为每个用户对象手动创建一个新的模板?如何在添加模型时自动生成新模板

models.py:

from django.db import models 

class User(models.Model): 
    name = models.CharField(max_length=220) 

views.py:

class Profile(View): 
    def get(self, request, *args, **kwargs):    
     return render(request, 'profile.html') 
+1

为什么每个用户需要一个单独的模板? –

+0

如果您需要更改html代码或其他内容,您的想法看起来很糟糕。 –

+0

你可能真正想要做的是使用像jinja2这样的模板语言来渲染你的单个profile.html模板,这样一个文件可以适用于所有用户。 – Hamms

回答

1

也可以创建一个URL调度像

url(r'^(P<user_name>\w+)/$', views.your_view), 

,并在你的看法,你可以只渲染一个模板而不是创建许多模板,以便您的视图看起来像:

def your_view(request, user_name): 
    user = get_object_or_404(username=user_name) 
    context = { 
     '':user.info 
    } 
    return render(request, 'your_app/template.html') 

所以在你的template.html渲染你的用户信息。如果您不明白,请阅读example

+0

每个用户必须有一个页面显示他的服务访问网站的人,所以我想每个用户对象必须有它自己的模板 –

+0

它的作品,谢谢! –

+0

如果你也喜欢投票 –