Я хотел бы автогенерировать словарь данных POST в форме изменения admin django, как если бы текущий объект не менялся. В основном имитируйте запрос POST, который произойдёт, если вы выполните GET на странице изменений от администратора, а затем нажмите «Сохранить». Это должно учитывать, какие поля доступны для редактирования в этой конкретной форме изменения, и также сможет обрабатывать InlineAdmins.Django autogenerate POST data dict для произвольной формы администратора
def auto_generate_changeform_data(object):
data = ???
return data
Например, в строке 302 из the django admin testcases они вручную создать словарь данных POST, но это то, что должно быть возможным осуществлять автоматическую генерацию, не так ли?
Я бы использовал эту функцию в тестовой папке, где я хочу проверить, что происходит, когда я изменяю одно конкретное поле на этой модели или даже одну из встроенных строк.
#some testcase
some_object = SomeModel.objects.get(...)
url = reverse("admin:appname_modelname_change", args=[some_object.id])
data = auto_generate_changeform_data(some_object)
data['some_field'] = 'new value' #this is the only change I want to make
response = self.client.post(url, data)
Я мог бы сделать все это в более-агрегатной у моды, используя методы в классе ModelAdmin вместо того, чтобы идти через запрос POST к клиенту, но я хочу, функциональный тестне блок тест в этом случае. Я действительно хочу симулировать полный POST для URL.
Как я могу получить этот словарь данных, особенно часть встроенных форм?
безупречный! благодаря! – andy