Это было бы легко сделать, если бы вы сделали это двухэтапным процессом.Возможно, имея add_view
, который имеет только 1 поле, template
.
В противном случае вам придется использовать JavaScript и настроить представление, которое возвращает данные шаблона.
Вот простое решение с использованием администратора модели и двухэтапной формы:
class MyAdmin(ModelAdmin):
# ...
def add_view(self, request, form_url='', extra_context=None):
self.fields = ['template'] # add view has only 1 field.
return super(MyAdmin, self).add_view(request, form_url, extra_context)
def save_model(self, request, obj, form, change):
if not change:
# if adding... populate defaults.
obj.throttle = obj.template.throttle
obj.rate_limit = obj.template.rate_limit
obj.save()