m2m с дополнительным полем

17 views
Skip to first unread message

Святослав Журовський

unread,
Jul 29, 2015, 3:59:52 AM7/29/15
to Django russian
class Streets (models.Model):
    street_name
= models.CharField(verbose_name=u"Улица", max_length=100)

class County(models.Model):
    number
= models.CharField(verbose_name=u"Номер округа", max_length=100)
    streets
= models.ManyToManyField(Streets, null=False, verbose_name=u'Улицы')

Есть округа, в какие входят улицы и перечень домов. Один округ можеит иметь половину одной улицы, другой - еще половину. Вопрос: как указывать номера домов в округе?

Nikolay Fominykh

unread,
Jul 29, 2015, 5:43:17 AM7/29/15
to django-...@googlegroups.com
Куча вариантов.

Для учета номеров домов - создать модель "Дом" с полями "округ" и "улица". Это в лоб. 

Если нужны только номера домов - тогда какой-нибудь SubStreet создать :)  

29 июля 2015 г., 10:59 пользователь Святослав Журовський <svyatoslav...@gmail.com> написал:

--
Вы получили это сообщение, поскольку подписаны на группу "Django russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес django-russia...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Святослав Журовський

unread,
Jul 29, 2015, 6:35:37 AM7/29/15
to Django russian, svyatoslav...@gmail.com

class Streets (models.Model):
    street_name
= models.CharField(verbose_name=u"Вулиця", max_length=100)
    city
= models.ForeignKey(Cities, verbose_name=u"Місто",)

class County(models.Model):
    number
= models.CharField(verbose_name=u"Номер округу", max_length=100)
    street
= models.ManyToManyField(Streets, through='Countyship')

class
Countyship(models.Model):
    street
= models.ForeignKey(Streets)
    buildings
= models.CharField(max_length=200)
пробую так сделать, но получаю ошибку при makemigration

tels.Countyship: (fields.E336) The model is used as an intermediate model by 'tels.County.street', but it does not have a foreign key to 'County' or 'Streets'.




Sarutobi

unread,
Jul 29, 2015, 8:05:51 AM7/29/15
to django-...@googlegroups.com
ну да, все верно, вы объявили Countyship как модель для связи между County и Streets, поэтому в ней должно существовать поле-ссылка на Streets.


29 июля 2015 г., 13:35 пользователь Святослав Журовський <svyatoslav...@gmail.com> написал:

--
Вы получили это сообщение, поскольку подписаны на группу "Django russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес django-russia...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



--
Regards,
Valery A. Ilychev aka Sarutobi
Reply all
Reply to author
Forward
0 new messages