Найти - Пользователи
Полная версия: Объекты Django
Начало » Django » Объекты Django
1 2
Rebra4
Как можно динамически менять названия полей модели (обьектов), например:
b=Blog(name='first')
#изменить на 
b=Blog(name_en='first2')
#Общем передавать название поля, как переменную.
JOHN_16
Rebra4
А передача аргументов словарем не сработает?
Пример:
class Test(object):
    def __init__(self, name='', *args, **kargs):
        if name :
            self._name=name
        else:
            if kargs['name']:
                self._name=kargs['name']
    def hello(self):
        return 'Hello, {}!'.format(self._name)
test=Test('John')
print test.hello()
args={'name': 'Mike'}
test=Test(**args)
print test.hello()
FishHook
args, конечно же, отсюда надо убрать.
def __init__(self, name='', *args, **kargs):
Rebra4
непонятно, как это использовать в моем объекте.
FishHook
Rebra4
непонятно, как это использовать в моем объекте.
непонятно, что именно вам непонятно
Rebra4
ну получил, я строку по вашему примеру ‘name_en’, что дальше? Как эту строку динамически вставлять в объект b=Blog(name_en='first2')?
FishHook
 b=Blog(**{"name_en": 'first2'})
Это нужно было?
Rebra4
а если сделать запись вида:
b.name_en='first2' 
FishHook
Уважаемый, вы на форуме почти три года.
За эти три года вы не удосужились освоить элементарных базовых знаний о языке. Вы не знаете, что такое setattr и зачем он нужен? За три года?
Rebra4
у меня был перерыв
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB