В просмотрах хочу получить автообъект, а затем изменить first_year
var.For loop in views
def cars(request, mark_id, year=year):
#BMW, etc.
mark = get_object_or_404(Mark, pk=mark_id, active=1)
#M, X-series, etc.
for group in mark.groups.iterator():
group.first_year.year = int(year)-int(group.first_year.year)
return render(request, 'cars.html', { 'mark':mark, })
Таким образом, в шаблоне я использую:
{% for i in mark.groups.all %}
{{i.first_year}}
{% endfor %}
И он возвращает значения из БД, а не мой group.first_year.year
. Как вы можете понять, существует 3 модели - mark, groups и first_year. Если вам нужно, я могу опубликовать их здесь, но я думаю, что что-то не так в моих взглядах.
Спасибо.
Редактировать. Модели.
class First_Year(models.Model):
year = models.IntegerField()
def __unicode__(self):
return str(self.year)
class Groups(models.Model):
many_other_fields
mark = models.ForeignKey(Mark, related_name='groups')
last_update = models.DateTimeField()
first_year = models.ForeignKey(First_Year, related_name='first_year')
def __unicode__(self):
return self.name
def altered_date(self, year):
altered_year = int(year)-int(self.first_year.year)
return altered_year
Без модели Марка, bacause имеет много-много полей, без года и т.д.
wow, спасибо! Здорово!!! – tim
, но он не работает корректно: аргумент 'int() должен быть строкой или числом, а не« первым_Year », потому что у меня есть модель First_Year, я пытаюсь« altered_year = int (year) -int (self.first_year.year)) ', и он возвращает' 'long 'объект не имеет атрибута' altered_date'' – tim
Мой ответ настроен на поле года, которое находится в вашей группе. Вы должны поместить функцию 'altered_year' в зависимости от того, какая модель имеет« дату ». Если это модель «First_Year», тогда установите там функцию и соответствующим образом настройте мой ответ. Или разместите свои модели. –