2013-09-09 2 views
0

Я хочу связать связанный объект с соответствующими формами в наборе форм. До сих пор у меня есть:Как связать значение с конкретной формой в formet в django

ModelFormSet = modelformset_factory(Notification, form=NotificationsForm, extra=5) 

    generic_type = ContentType.objects.get_for_model(Department) 
    queryset = Notification.objects.filter(notificationrelation__content_type_id=generic_type.id) 
    formset = ModelFormSet(queryset=queryset) 

    for notification in formset.get_queryset(): 
     relation = NotificationRelation.objects.get(notification=notification) 
     department = Department.objects.get(pk=relation.object_id) 

Мои модели выглядят следующим образом:

class Notification(models.Model): 
    name = models.CharField('Notification Name', max_length=128) 

class Department(models.Model): 
    name = models.CharField('Department Name', max_length=128) 

class NotificationRelation(models.Model): 
    content_type = models.ForeignKey(ContentType) 
    object_id = models.PositiveIntegerField(null=True, blank=True) 
    content_object = generic.GenericForeignKey('content_type', 'object_id') 
    notification = models.ForeignKey(Notification) 

Я хочу, чтобы связать отдел по последней строке с соответствующим уведомлением в formset.

Что-то вроде:

for form in formset: 
    if something: 
     form.department = department 

Кто-нибудь знает, как я могу это сделать?

+0

Вы не можете просто использовать inline_formset, или я что-то упускаю? – professorDante

+0

, который работал бы, если отношение было внешним ключом, но уведомления и отделы используют общий внешний ключ. Объект_ид в объекте отношения явно не привязан к идентификатору отдела. – Atma

ответ

0

Я решил не использовать встроенную форму, кроме нескольких форм.

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