Передача значения из родительской модели во встроенную при добавлении новой встроенной записи - PullRequest
0 голосов
/ 22 марта 2019

Я устанавливаю встроенную модель, используя общий внешний ключ, используя py3 + django 2.x.В дочерней и родительской модели есть общее значение, называемое «клиент», которое является внешним ключом, связанным с таблицей клиента.

При добавлении дочернего элемента я хочу, чтобы новый дочерний элемент автоматически принимал значение "client", сохраненное в его родительском элементе.Я пытался отыскать его ответ, не найдя решения ...

#Filestorage management model
class ChildModel(models.Model):
object_id    = models.PositiveIntegerField()
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
of           = GenericForeignKey('content_type', 'object_id')    
#
fileName = models.CharField(max_length=50)
client = models.ForeignKey(ClientCtrl, on_delete=models.CASCADE)       


#Filestorage management inline
class ChildModelLine(GenericTabularInline):
model = ChildModel
ct_field_name = 'content_type'
id_field_name = 'object_id'
fieldsets = (
    (None, {
        'fields': ('id','client','fileName',...),
        }),  
)
readonly_fields = ('id','client')


class ParentModelAdmin(admin.ModelAdmin):

inlines = [ChildModelLine] 
...
def save_formset(self, request, form, formset, change):
    instances = formset.save(commit=False)
    for instance in instances:
        if not instance.pk:
            instance.oper = request.user
            instance.client = self.ParentModel.client
        instance.save()
    formset.save_m2m()

При добавлении встроенного элемента я хочу передать существующий ключ значения клиента от родителя к потомку.

...