Я устанавливаю встроенную модель, используя общий внешний ключ, используя 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()
При добавлении встроенного элемента я хочу передать существующий ключ значения клиента от родителя к потомку.