2017-06-25 14 views
0

私はまだかなり新しいdjangoです。私は問題を抱えていましたが、私はGoogleを使っていても解決していないかもしれません。だから私はそうのようなモデル命名movieTitlesていますリストアイテムのDjangoクエリーセット

class movieTitle(models.Model): 
    title = models.Charfield(max_length=50) 
    image = models.URLField(max_length=100) 
    description = models.TextField() 
    year = models.PositiveSmallIntegerField() 
    director = models.Charfield(max_length=50) 

は、その後、私はそうのように私の見解を持っている:

from Movie.models import movieTitles 

def movieListView(request): 
    movie = movieTitle.objects.all() 
    return render(request, 'index.html', {'movies':movie}) 

と私のhtmlのように:

<body> 
    {% for info in movies %} 
     <a href="#">{{info.title}}</a> 
    {% endfor %} 
</body> 

私はそれを欲しいですユーザーがムービーリストに移動して特定のムービーをクリックすると、別のhtmlページに移動するにはどうすればいいですか?info.imageinfo.descriptioninfo.year d info.directorがクリックした映画に属しています。私はテンプレートとそのすべてを書く方法を知っていますが、私が混乱しているのは、{{info。???}}を使ってテンプレートを書いて、リンクするすべてのムービーのテンプレートを作成せずに、ユーザがムービーを選択して次のテンプレートの詳細を作成するテンプレート。

答えて

1

新しいビューを作成して、選んだムービーのpkを取得し、それに関するすべての情報を取得する必要があります。あなたがすべき

# Add to urls.py 

urlpatterns += [url(r'^detail/(?P<pk>\d+)/$', views.movie_detail, name='movie_detail')] 

# Add to views.py 

from django.shortcuts import get_object_or_404 

def movie_detail(request, pk): 
    movie = get_object_or_404(movieTitle, pk=pk) 
    return render(request, 'movie_detail.html', {'movie': movie}) 

# movie_detail.html 

<h1>Title: {{ movie.title }}</h1> 
<img src="{{ movie.image }}"> 
{{ movie.description|linebreaks }} 
<p>Year: {{ movie.year }}</p> 
<p>Director: {{ movie.director }}</p> 

最後は映画のリストをHTMLに右のURLを置くことです

# Your initial html 
<body> 
    {% for movie in movies %} 
     <a href="{% url 'movie_detail' movie.pk %}">{{ movie.title }}</a> 
    {% endfor %} 
</body> 

そしてそれは、すべての

-1

がID foregのようなウルモデルに独自のフィールドを追加します: -

class movieTitle(models.Model): 
    id = models.Charfield(max_length=50) 
    title = models.Charfield(max_length=50) 
    image = models.URLField(max_length=100) 
    description = models.TextField() 
    year = models.PositiveSmallIntegerField() 
    director = models.Charfield(max_length=50) 

とこのようなURLは次のとおりです。 お申し込みのアプリ名は

です
app_name = 'movie' 

url(r'^movie-list/show/(?P<university_id>[0-9]+)/$', view.view_list, name='view-list')

と、次のようにテンプレートでウルURLを渡す:

<body> 
    {% for info in movies %} 
     <a href="{{movie:view-list}} info.id">{{info.title}}</a> 
    {% endfor %} 
</body>