P
P
paevlk20072014-08-01 14:45:57
go
paevlk2007, 2014-08-01 14:45:57

Django, how to link two fields in a form?

class Accessories_view_eq(models.Model):
    accessories_plot = models.ForeignKey(Accessories_plot, verbose_name=u"Участок", blank=True, null=True)
    access_name_view = models.CharField("Оборудование:", max_length=100,  blank=True, null=True)

    def __unicode__(self):
        #return u"%s - %s" % (unicode(self.accessories_plot), self.access_name_view)
        return self.access_name_view

    class Meta:
        verbose_name_plural = _(u"Справочник ВПР - 2.Оборудование")
        ordering = ['accessories_plot']

class Accessories_node(models.Model):
    accessories_view_eq = models.ForeignKey(Accessories_view_eq, verbose_name=u"Оборудование", blank=True, null=True)
    access_name_node = models.CharField("Узлы:", max_length=100,  blank=True, null=True)

    def __unicode__(self):
        return self.access_name_node

    class Meta:
        verbose_name_plural = _(u"Справочник ВПР - 3.Узлы оборудования")
        ordering = ['accessories_view_eq']

In the [Accessories_view_eq] model, you need __unicode__ with one field, but in the form of the [Accessories_node] model, you need to display it as if I would do this in the [Accessories_view_eq] model: return u"%s - %s" % (unicode( self.accessories_plot), self.access_name_view) and actually in the model form [Accessories_node], the accessories_view_eq field would reflect two fields.
Is there such a magic on earth that would solve this problem ???
Thank you!

Answer the question

In order to leave comments, you need to log in

6 answer(s)
Никита, 2016-05-11
@lucifer-m

Не путайте с другими ЯП, это невозможно. Создайте map из необходимых вам методов, и вызывайте api.MyMap[MyFunc](). Или юзайте рефлексию.
https://play.golang.org/p/REKlyayaza

Александр Сёмченко, 2016-05-11
@0xcffaedfe

нужно засунуть большой шарик в квадратное отверстие, при этом что бы шарик не сломался
что было сделано
1) красил шарик другим цветом, не помогло, все равно не влазит
2) гуглил, в гугле пишут ни у кого не получилось
3) можно сточить шарик до меньшего размера, он влезет, но это не подходит
.......... можно продолжать дальше
намек поняли ?

B
Bojczuk, 2016-05-11
@Bojczuk

Копай в сторону reflect.ValueOf, что-то подобное должно сработать:

reflect.ValueOf(MyStruct).MethodByName("MyMethod").Call([]reflect.Value{})

S
sim3x, 2014-08-01
@paevlk2007

class AccessoriesNode(models.Model):
        accessories_view_eq = models.ForeignKey(
                  AccessoriesViewEq, verbose_name=u"Оборудование", blank=True, null=True)
        access_name_node = models.CharField("Узлы:", max_length=100,  blank=True, null=True)

        def __unicode__(self):
            return u'{node} {plot} {view}'.format(
                node=self.accessories_view_eq.access_name_node,
                plot=self.accessories_view_eq.accessories_plot,
                view=self.access_name_view
            )

        class Meta:
            verbose_name_plural = _(u"Справочник ВПР - 3.Узлы оборудования")
            ordering = ['accessories_view_eq']

it is possible to knock through __ it is possible through a dot
Try to give more meaningful names of the model field

A
Alexander, 2014-08-01
@syschel

I didn’t fully understand what kind of magic is needed, but if you are talking about connections, then double underlining rules.

class Accessories_node(models.Model):
    def __unicode__(self):
        return u"%s - %s" % (self.accessories_view_eq__accessories_plot, self.accessories_view_eq__access_name_view)

A
alternativshik, 2014-08-01
@alternativshik

PS model names must be in CamelCase.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question