Hi, I hope someone can find the wrong part. I’m not able to get access to the model fields of the pk. Normally this should be a simple thing, but for any reason it doesn’t work here. Any help appreciated.
model.py:
class PlanningWeek(models.Model):
monday = models.ForeignKey('PlanningDay', on_delete=models.CASCADE, related_name='weeks_monday', blank=True, default='1')
tuesday = models.ForeignKey('PlanningDay', on_delete=models.CASCADE, related_name='weeks_tuesday', blank=True, default='1')
wednesday = models.ForeignKey('PlanningDay', on_delete=models.CASCADE, related_name='weeks_wednesday', blank=True, default='1')
thursday = models.ForeignKey('PlanningDay', on_delete=models.CASCADE, related_name='weeks_thursday', blank=True, default='1')
friday = models.ForeignKey('PlanningDay', on_delete=models.CASCADE, related_name='weeks_friday', blank=True, default='1')
week_of_year = models.IntegerField("Week Number")
year_of_obj = models.IntegerField("Year", choices = YEAR_CHOICES, default = datetime.now().year)
def __str__(self):
return f'Week: {self.week_of_year}'
class PlanningDay(models.Model):
meat_meal = models.ForeignKey('Meal', on_delete=models.CASCADE, related_name='meat_meal_planning_day_set')
veg_meal = models.ForeignKey('Meal', on_delete=models.CASCADE, related_name='veg_meal_planning_day_set')
date_of_day = models.DateField("Date")
calendar_week = models.IntegerField('Calendar week')
def __str__(self):
if self.id > 1:
return f'Day: {self.date_of_day} / KW: {self.calendar_week}'
else:
return f'n/a'
views.py:
class UpdateWeek(ListView):
model = PlanningWeek
template_name = 'mealOrder/show_week.html'
#for testing its limited to one entry, because this one has all values in db
def get_queryset(self, *args, **kwargs):
qs = super().get_queryset(*args, **kwargs)
qs = PlanningWeek.objects.filter(week_of_year = '29').values()
print(qs[0])
return qs
template:
{% for week in planningweek_list %}
<div class="container">
<div class="row">
<div class="col">
<h4>{{ week.monday.date_of_day }}</h4>
</div>
</div>
</div>
As you can see pk-fields are filled, but the template rendering results in an empty
<h4>-tag. If I change to {{ week.monday_id } the correct id will be displayed. What am I doing wrong?