2013-12-04 3 views
0

Django 1.3.django модели много-ко многим вопросам отношений

Пусть у меня есть модели:

class Inspector(models.Model): 
    field = models.IntegerField() 

Model_1(models.Model): 
    inspectors = ManyToManyField(InspectorData) 

И я должен создать другую модель, в которой поле может хранить данные только из Model_1().inspectors атрибута. Smth like:

class Model_2(models.Model): 
    model_1_inspectors = ManyToManyField(Model_1__inspectors) 

Как я могу выполнить это в Django (если это возможно)?

Заранее спасибо.

+0

Вы создали модель в самом вопросе. Что еще вы хотите? –

+0

Я не уверен, что 'ManyToManyField (Model_1__inspectors)' работает в django) – alexvassel

ответ

1

Первый вариант переопределить метод save в Model_1 и при каждом сохранении обновлений работы инспекторов в специально созданной модели Model1inspectors. Таким образом, `Model_2 'будет выглядеть так же, как ваш.

Но я думаю, что лучше настроить QuerySet для этого ManyToManyField в вашей форме так:

class Model_2Form(forms.ModelForm): 
    class Meta: 
     model = Model_2 

    def __init__(self, *args, **kwargs): 
     super(Model_2Form, self).__init__(*args, **kwargs) 
     self.fields['model_1_inspectors'].queryset = InspectorData.objects.filter(
      pk__in=Model_1.objects.values('inspectors').distinct()) 
0

импортировать модель требуется, как

from myapp_folder.models import Inspector 
class Model_2(models.Model): 
    model_1_inspectors = ManyToManyField(Inspector) 

Это будет работать

Смежные вопросы