2017-07-31 76 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

如果你也喜歡投票 –