Как установить определенный атрибут для шаблона HTML на основе возвращаемого значения метода модели или только имени поля модели?
Я уже знал, что можно переопределить поля с помощью функции __init__
или виджетов, подобных этому:
models.py
class Item(models.Model):
title = models.CharField(verbose_name=u"name", max_length=200, blank=False, null=False)
def __str__(self):
return ("%s" % self.title)
forms.py
class ItemForm(forms.ModelForm):
class Meta:
model = Item
fields = ['title',]
widgets = {
'title': forms.RadioSelect(attrs={
'class': 'radioselect',
'item_name': 'title name?' # <- i want to have title name here of each not statis string
}),
}
def __init__(self, *args, **kwargs):
super(ItemForm, self).__init__(*args, **kwargs)
self.fields['title'].widget.attrs.update({
'item_name': '' # <- i want to have title name here of each not statis string
})
однако я хочу задать конкретное имя поля на основе ранее определенных полей в модели, а не просто статической строки, как в вышеупомянутом примере. Если я добавлю Item
в базу данных с title = "Apple" , я хочу вставить эту строку в этот атрибут, чтобы получить такой ожидаемый результат, как этот в шаблонах:
<input type="radio" class="radioselect" item_name="Apple">