[英]how can i add objects from my model to my CBV in django?
我正在嘗試將 model 中的對象添加到我的 CBV 中,我創建了一個 model,所以我試圖將它們傳遞給我的視圖,但它不起作用,盡管我創建了 2 個類,它們是定價和定價服務,我想要一個內聯對於我所做的 Pricingservice 中的一個字段,但我不知道如何將兩者都添加到視圖中的 CBV 視圖中以便在我的模板中訪問它們,下面是我的代碼,請幫助我,因為我一直在與這幾天,謝謝
class Pricing(models.Model):
plans = models.CharField(max_length=250)
amount = models.CharField(max_length=250)
services = models.CharField(max_length=250)
def __str__(self):
return self.plans
class Pricingservice(models.Model):
pricing = models.ForeignKey(Pricing, default=None, on_delete=models.CASCADE)
services = models.CharField(max_length=250)
def __str__(self):
return self.pricing.plans
class PricingserviceAdmin(admin.StackedInline):
model = Pricingservice
@admin.register(Pricing)
class PricingAdmin(admin.ModelAdmin):
inlines = [PricingserviceAdmin]
class Meta:
model = Pricing
class HomePageView(TemplateView):
template_name = 'pages/home.html'
def get_context_data(self, **kwargs):
context = super(HomePageView, self).get_context_data(**kwargs)
context['Pricing'] = Pricing.objects.all()
return context
<div class="row">
{% for p in Pricing %}
<div class="col-md-3 ftco-animate">
<div class="pricing-entry pb-5 text-center">
<div>
<h3 class="mb-4">{{ p.plans }}</h3>
<p><span class="price">#{{ p.amount }}</span> <span class="per">/ Month</span></p>
</div>
<ul>
<li>{{ p.services }}</li>
</ul>
<p class="button text-center"><a href="#" class="btn btn-primary px-4 py-3">Get Offer</a></p>
</div>
</div>
{% endfor %}
</div>
[ ] 1
最好使用ListView
。 您需要告訴 Django 與您的觀點相關的 model 是什么,即:
class HomePageView(ListView):
model = Pricingservice
template_name = 'pages/home.html'
然后在您的模板中,您可以使用:
{% for pricingservice in pricingservice_list %}
{{ pricingservice.pricing }}
{% endfor %}
我不確定你的兩個模型到底有什么不同,但也許合並它們會更好?
試試這個解決方案:
class HomePageView(ListView):
model = Pricing
template_name = 'pages/home.html'
然后試試這個模板:
{% for pricing in object_list %}
{{pricing.plans}}<br>
{% for service in pricing.pricingservice_set.all %}
{{ service.services }}<br>
{% endfor %}
{% endfor %}
請自己添加一些樣式。 :)
嘗試這個
class HomePageView(TemplateView):
template_name = 'pages/home.html'
def get_context_data(self, **kwargs):
context = super(HomePageView, self).get_context_data(**kwargs)
context['Pricing'] = Pricing.objects.all()
return context
class PricePageView(ListView):
model = Pricingservice
template_name = 'pages/home.html'
path('', HomePageView.as_view(), name='home'),
path('price/', PricePageView.as_view(), name='price'),
{% for pricingservice in Pricingservice_list %}
<ul>
<li>{{ pricingservice }}</li>
</ul>
{% endfor %}
我不確定這是否可行,但如果該答案對您不起作用,請嘗試此操作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.