Форум сайта python.su
Всем привет. Помогите решить проблему.
Имеется 2 модели:
class Phone(models.Model):
code_area = models.CharField(_(u'Код'), max_length=5)
phone = models.CharField(_(u'Телефон'), max_length=15)
comment = models.CharField(_(u'Комментарий'), max_length=50, blank=True)
def __unicode__(self):
return '(%s) %s %s' % (self.code_area, self.phone, self.comment)
class Company(models.Model):
name = models.CharField(_(u'Название'), max_length=255)
phones = models.ForeignKey(Phone, related_name='company_phones', verbose_name=_(u'Телефоны'))
def __unicode__(self):
return self.name
class CompanyForm(forms.ModelForm):
def __init__(self, *args, **kw):
super(CompanyForm, self).__init__(*args, **kw)
self.fields.keyOrder = ['name', 'phones']
class Meta:
model = Company
fields = [
'name', 'phones']
Офлайн
А как одной компании можно сопоставить множество телефонов, если в коде стоит ForeignKey на модель с телефонами?
Тупо сменить ForeignKey в модели Company на ManyToManyField (если одному телефону может быть сопоставлено несколько компаний). Или поставить ForeignKey в модель telephone со ссылкой на company. Дальше Джанга сама все сделает.
Отредактировано (Янв. 18, 2012 08:48:09)
Офлайн
Может кто нибудь объяснить что означает конструкция типа:
super(CompanyForm, self).__init__(*args, **kw)
Что она делает? Что за метод super?
Офлайн
andreyjkeehttp://lmgtfy.com/?q=%D0%9B%D1%83%D1%82%D1%86+4-%D0%B5+%D0%B8%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5
Может кто нибудь объяснить что означает конструкция типа:
super(CompanyForm, self).__init__(*args, **kw)
Что она делает? Что за метод super?
Офлайн
Добрыйдень.
Господа, Кто сталкивался с одновременным редактированием формсета из modelformset_factory ?
получаю ошибки, если данные в бд не соответствуют форме; если с момента загрузки формы до сабмита кто-то другой изменил данные в бд.
В частности, если записей стало меньше, чем на форме, то имеем лист индекс еррор где-то изнутри ..дб.квери (точно не скажу, форма в процессе переписывания с модельной на обычную)
Так вот вопрос - это поведение имеет место, или это я что-то не так изготовил?
нагуглить ответ не получилось..
Офлайн