Ich habe versucht, dieses Problem beim Lernen von Django (Python) herauszufinden.Kinder in Eltern in Django-Vorlage sortieren
Ich möchte Kinderobjekte in ihre Eltern sortieren. Konkret möchte ich Städte in ihren jeweiligen Staat einordnen. Dann möchte ich, dass die Stadt in der Vorlage in ihrem korrekten Zustand angezeigt wird. Was ich suche, wie dies möchte:
Staat
--- Stadt
--- Stadt
--- Stadt
Edit: Ich habe es funktioniert etwas. Die Städte wiederholen sich jedoch in der Vorlage. Ich brauche nur jedes einzelne Display. Ich habe die Vorlage eingefügt, um zu sehen, ob mir jemand dabei helfen kann.
Nochmals vielen Dank.
models.py
class State(models.Model):
state_name = models.CharField(max_length=20, default='')
state_slug = models.SlugField()
state_image = models.ForeignKey(Image, null=True)
state_summary = models.TextField(null=True)
def __str__(self):
return self.state_slug
class City(models.Model):
city_name = models.CharField(max_length=55, default='')
city_slug = models.SlugField()
state_image = models.ForeignKey(Image, null=True)
school_image = models.ForeignKey(Image, null=True, related_name='+')
state = models.ForeignKey(State, null=True)
def __str__(self):
return self.city_slug
views.py
class CityInStateView(ListView):
model = City
context_object_name = 'city_in_state_list'
def get_context_data(self, **kwargs):
context = super(CityInStateView, self).get_context_data(**kwargs)
city = City.objects.all()
state = State.objects.get(state_slug=self.kwargs['state_slug'])
context['city_list'] = City.objects.filter(state=state).order_by('city_name')
return context
urls.py
urlpatterns = [
url(r'^$', SchoolIndexView.as_view(), name='school_index'),
url(r'^(?P<state_slug>[\w-]+)/$', CityInStateView.as_view(), name='state_index'),
]
template.html
{% block main_content %}
<div class="row body">
<div class="main_content">
<div class="row">
<div class="medium-12 columns small-centered">
<div class="feature_wrapper">
{% load cloudinary %}
<header class="page_header">
<div class="row">
<div class="medium-12 columns">Top bar</div>
</div>
</header>
<div class="search">
<div class="row">
<div class="medium-12 columns">Search bar</div>
</div>
</div>
{% if city_in_state_list %}
{% for city in city_in_state_list %}
<section class="hero">
{% cloudinary city.state_image.image format="jpg" crop="fill" %}
<p class="photo-caption">
{{ city.state_image.image_name }} by {{ city.state_image.image_author }} via {{ city.state_image.image_source }} | {{ city.state_image.image_license }}
</p>
</section>
<section class="summary">
<p>{{ city.state.state_summary }}</p>
</section>
<div class="row">
<div class="medium-12 columns listicle">
<div class="demo_wrapper">
<div class="long_ad_box">
<img src="http://placehold.it/728x90">
</div>
</div>
<div class="state_name">
<h2 class="headline">Nursing Schools in {{ city.state.state_name }}</h2>
</div>
{% if city_list %}
{% for school in city_list %}
<h2 style="text-align: left";>{{ school.city_name }}</h2>
<div class="school_image">
{% cloudinary city.school_image.image format="jpg" crop="fill" %}
</div>
{% endfor %}
{% endif %}
</div>
</div>
</div>
</div>
{% endfor %}
{% endif %}
</div>
{% endblock %}
Das hat mir seit einer Woche den Hintern getreten. Bitte erkläre es mir wie ich bin fünf. Ich schätze all Ihre Hilfe im Voraus.
Ich werde es versuchen. Vielen Dank. – user2901792
Ich bin ohne zu testen, also lassen Sie mich wissen, wenn es nicht funktioniert und ich werde es beheben – dkarchmer
Ich habe es versucht. Ich bekomme jetzt diesen Fehler: Generische Detailansicht CityInStateView muss entweder mit einem Objekt pk oder einem Slug aufgerufen werden. – user2901792