Я закончил с использованием get_initial, как это было упомянуто здесь How to subclass django's generic CreateView with initial data?CBV Как установить исходные данные формы из модели?
Так мой взгляд изменился, чтобы выглядеть следующим образом:
class VlanFormView(FormView):
template_name = 'vlan_form.html'
model = Vlan
form_class = VlanForm
def get_initial(self):
initial = {}
default_vlan = Vlan.objects.get(pk=1)
initial['vlan_name'] = default_vlan.vlan_name
initial['vlan_number'] = default_vlan.vlan_number
return initial
def get_success_url(self):
self.group = get_object_or_404(Group, group=self.kwargs['groupname'])
# Redirect to vlan list
return '/ipmgmt/%s/vlans/' % self.group
Я ищу, чтобы быть в состоянии иметь предварительно заполненную форму основанный на шаблоне введенных данных.
Так что мой шаблон базируется первая запись в таблице Vlan, которая 1 ...
Я попытался установить экземпляр на form_class:
form_class = VlanForm(instance=Vlan.objects.get(pk=1))
я получаю TypeError:
'VlanForm' object is not callable
Что-то подсказывает мне, что я не пользуюсь правом CBV, как я могу установить свои исходные данные? Благодаря
My Model:
class Vlan(models.Model):
vlan_name = models.CharField(max_length=30)
vlan_number = models.CharField(max_length=6)
group = models.ForeignKey(Group)
Моя форма:
class VlanForm(forms.ModelForm):
class Meta:
model = Vlan
Мой Вид:
class VlanFormView(FormView):
template_name = 'vlan_form.html'
model = Vlan
form_class = VlanForm(instance=Vlan.objects.get(pk=1))
def get_success_url(self):
self.group = get_object_or_404(Group, group=self.kwargs['groupname'])
# Redirect to vlan list
return '/ipmgmt/%s/vlans/' % self.group