The problem is that the text of the model description_text is not displayed. And sorry for my english.
This is code of html
{% for description_text in context_object_name %}
<h1 class="description"><a href="/Homepage/{{ goods.id }}/">{{goods.description_text}}</a></h1>
{% endfor %}
This is code of views.py
class IndexView(generic.ListView):
template_name = 'Homepage/index.html'
model = Goods
context_object_name = 'goods.description_text'
def description(self):
return self.description_text
def price(self):
return self.price_text
def get_queryset(self):
"""Return the last five published questions."""
return Question.objects.order_by('-pub_date')[:5]
And this is code of models.py
class Goods(models.Model):
description_text = models.CharField(max_length=200)
price_text = models.CharField(max_length=200)
def __str__(self):
return self.description_text
def __str__(self):
return self.price_text
This is code of admin.py
from django.contrib import admin
from .models import Good
from .models import Question
admin.site.register(Good)
admin.site.register(Question)
class Good(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['description_text']}),
(None, {'fields': ['price_text']}),
]
CodePudding user response:
The context_object_name
is the name of the template variable used to pass the list to. Such variable names are not supposed to have a dot (.
). You can for example use:
class IndexView(generic.ListView):
template_name = 'Homepage/index.html'
model = Goods
context_object_name = 'goods'
In the template, you then enumerate over the goods
and render the description_text
for each good
:
{% for good in goods %}
<h1 class="description"><a href="/Homepage/{{ good.id }}/">{{ good.description_text }}</a></h1>
{% endfor %}
Your ModelAdmin
you construct is not registered. Indeed, you registered the Good
model, but not with that ModelAdmin
, you need to define the ModelAdmin
and link it to the Good
model with:
from django.contrib import admin
from .models import Goods, Question
class GoodAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['description_text', 'price_text']}),
]
# link Goods to the GoodAdmin
admin.site.register(Goods, GoodAdmin)
admin.site.register(Question)