Заполните поле в changeform_view - PullRequest
0 голосов
/ 20 февраля 2019

Когда я открываю элемент в модели, например: / shop_push / shopapidefinition / 4 / change / Я хочу заполнить одно поле своим собственным значением, а остальные оставить нетронутыми.

В настоящее время я могу сделатьчто-то, когда я редактирую, как показано ниже

class ShopApiDefinitionAdmin(admin.ModelAdmin):
    def __init__(self, *args, **kwargs):
        # let's define this so there's no chance of AttributeErrors
        self._request = None
        super(ShopApiDefinitionAdmin, self).__init__(*args, **kwargs)

    def get_request(self):
        return self._request

    def changeform_view(self, request, *args, **kwargs):
        # stash the request
        self._request = request
        print "changelist_view ShopApiDefinitionAdmin"

        # call the parent view method with all the original args
        #ShopApiDefinitionAdmin['about_the_shop'] = "hello"
        return super(ShopApiDefinitionAdmin, self).changeform_view(request, *args, **kwargs)

Что я не знаю, как это сделать, добавить данные в поле для этой записи, например

field ['about_the_shop'] =«новый текст»

Было бы неплохо сохранить новые данные, но это не обязательно.

Буду признателен за любые рекомендации

Спасибо

1 Ответ

0 голосов
/ 21 февраля 2019

Я понял, что, вероятно, лучше всего использовать change_view и это срабатывает до того, как содержимое извлекается из модели, поэтому я использую object_id, запрашиваю запись, делаю мой код и затем сохраняю детали

def change_view(self, request, object_id, form_url='', extra_context=None):
    #Get the record
    obj = ShopApiDefinition.objects.get(id=object_id)
    #get a value as I use that in my code
    self.password = obj.password
    #do some code
    shopify_shop = "a value from my code"
    obj.about_the_shop = shopify_shop  # change field
    obj.save()  # this will update only

    return super(ShopApiDefinitionAdmin, self).change_view(
        request, object_id, form_url, extra_context=extra_context,
    )

Кажется, это работает.Он сохранил значение в модели, и при загрузке формы он заполняется как существующими данными, так и новыми данными из моего кода

Спасибо

Предоставить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...