2017-07-31 18 views
0

私はDjangoでアプリケーションを構築していますが、Userというモデルとprofileというビューがあります。 Userオブジェクトを追加すると、新しいUserオブジェクトに対応する新しいテンプレート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テンプレートをレンダリングすることです。その結果、1つのファイルがすべてのユーザーに使用できるようになります – Hamms

答えて

1

だけでなく、あなたが

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

のようなURLディスパッチャを作成することができますし、あなたのビューで一つだけをレンダリングすることができます多くのテンプレートを作成するのではなく、テンプレートを作成すると、ビューは次のようになります。

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

あなたのテンプレートには、ユーザー情報が表示されます。あなたがこれを読んで理解していない場合example

+0

各ユーザーは自分のサービスをウェブサイトにアクセスする人に示すページを持っていなければなりません。独自のテンプレート –

+0

それは、ありがとう! –

+0

あなたが投票を好きなら –

関連する問題