django - Django/Python 在一个 html 中使用了两个模型
问题描述
我创建了电影网站,使用Django
,我有两个模型第一个是
class Movie(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=255, unique=True, db_index=True, verbose_name="URL")
title_english = models.CharField(max_length=100)
descritpion = models.TextField(max_length=1000)
image = models.ImageField(upload_to="movies")
category = models.CharField(choices=CATEGORY_CHOICES,max_length=10)
language = models.CharField(choices=LANGUAGE_CHOICES,max_length=30)
status = models.CharField(choices=STATUS_CHOICES,max_length=10)
year_of_production = models.TextField(max_length=1000)
view_count = models.IntegerField(default=0)
第二个是
class Series(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=255, unique=True, db_index=True, verbose_name="URL")
title_english = models.CharField(max_length=100)
descritpion = models.TextField(max_length=1000)
image = models.ImageField(upload_to="movies")
category = models.CharField(choices=CATEGORY_CHOICES,max_length=10)
language = models.CharField(choices=LANGUAGE_CHOICES,max_length=30)
status = models.CharField(choices=STATUS_CHOICES,max_length=10)
year_of_production = models.TextField(max_length=1000)
view_count = models.IntegerField(default=0)
在view.py
def home(request):
user = request.user
# Movies_obj = models.Movie.objects.all().order_by('-id')[:10]
Movies_obj = models.Movie.objects.filter(category__in=['A']).order_by('-id')[:10]
Movies_main_slider = models.Movie.objects.filter(category__in=["M"]).order_by('-id')[:10]
Movies_main_suggest = models.Movie.objects.filter(status__in=["Suggest"]).order_by('-id')[:10]
serial_obj = Serial
seriali = models.Serial.objects.all().order_by('-id')[:10]
return render(request,'index.html',{'user':user,'movies':Movies_obj,"main_slider":Movies_main_slider,
"favorite":Movies_main_suggest,"serils":seriali})
def details(request,post_slug):
movies_obj = Movies
get_movie = Movies.objects.filter(slug = post_slug)
return render(request,'Movie/movie_details.html',{"movies":get_movie})
也有两个HTML
文件,index.html
并且movie_details.html
,但是当我添加新的Series
不工作时movies_details.html
,movies_details
我正在使用
{% for i in movies %}
{{ i.descritpion }}
{% endfor %}
当我添加系列不工作时,只有电影模型工作,在一个 html 中使用两个模型的最佳方法是什么?为系列模型创建了新的 html ?
解决方案
您的网站仅显示电影,因为您只需在其中添加电影views.py
即可解决您需要进行这些更改的问题:
- 将系列添加到您的
views.py
并将它们呈现到模板
def home(request):
user = request.user
# Movies_obj = models.Movie.objects.all().order_by('-id')[:10]
Movies_obj = models.Movie.objects.filter(category__in=['A']).order_by('-id')[:10]
Movies_main_slider = models.Movie.objects.filter(category__in=["M"]).order_by('-id')[:10]
Movies_main_suggest = models.Movie.objects.filter(status__in=["Suggest"]).order_by('-id')[:10]
serial_obj = Serial
seriali = models.Serial.objects.all().order_by('-id')[:10]
# add series here
Series_obj = models.Series.objects.all()
return render(request,'index.html',{'user':user,'movies':Movies_obj,"main_slider":Movies_main_slider,
"favorite":Movies_main_suggest,"serils":seriali,"series": Series_obj})
- 现在您可以通过将此代码添加到您的
index.html
:
{% for serie in Series_obj %}
{{ serie.title }}
{% endfor %}
- 好的,现在对于详细信息页面,我建议您添加不同的功能,一个用于电影详细信息,另一个用于系列详细信息,同样的内容用于 .html 文件(例如:movie_details.html 和 serie_details.html),因此这些功能应如下所示:
def movieDetails(request,post_slug):
get_movie = Movie.objects.filter(slug = post_slug)
return render(request,'Movie/movie_details.html',{"movie":movie})
def serieDetails(request,post_slug):
get_serie = Series.objects.filter(slug = post_slug)
return render(request,'Movie/serie_details.html',{"serie":serie})
- 现在您可以
movie_details.html
像这样显示电影信息:
{{movie.title}}
{{movie.description}}
和同样的serie_details.html
:
{{serie.title}}
{{serie.description}}
不要忘记添加movieDetails
并检查serieDetails
您urls.py
的代码您犯了一些错误您将电影类命名为Movie
然后您将其调用views.py
为Movies
检查这样的错误并告诉您这是否适合您
推荐阅读
- arrays - 从 Ruby 中的数组中删除重复项并对特定索引执行操作
- python - 在 drop 函数中重复数据框名称
- php - Magento 2 矩阵费率结帐问题(未找到使用这种方法的运营商:matrixrate_5334)
- swift - 覆盖子类中的枚举案例
- c# - 如何在 xamarin 表单中实现后台通知?
- android - 应用程序的 PlayStore URL 显示 App 的 PackageName 或其 ApplicationId?
- arrays - 使用角度 6 获取对象数组的百分比
- typescript - 反应导航:如何在打字稿中使用 NavigationStackScreenComponent 类型传递 redux 道具
- java - 我们可以使用多个 UserGroupInformation (ugi) 对象来使用 kerberized hadoop 进行身份验证吗?
- ansible - 比较多个主机的 ansible 注册变量