Уведомления

Группа в Telegram: @pythonsu

#1 Март 18, 2015 21:58:06

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

Объекты Django

Как можно динамически менять названия полей модели (обьектов), например:

b=Blog(name='first')
#изменить на 
b=Blog(name_en='first2')
#Общем передавать название поля, как переменную.

Отредактировано Rebra4 (Март 18, 2015 21:58:21)

Офлайн

#2 Март 18, 2015 23:00:36

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Объекты Django

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()



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Март 19, 2015 04:35:57

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Объекты Django

args, конечно же, отсюда надо убрать.

def __init__(self, name='', *args, **kargs):



Офлайн

#4 Март 19, 2015 07:44:32

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

Объекты Django

непонятно, как это использовать в моем объекте.

Офлайн

#5 Март 19, 2015 07:51:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Объекты Django

Rebra4
непонятно, как это использовать в моем объекте.
непонятно, что именно вам непонятно



Офлайн

#6 Март 19, 2015 11:12:32

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

Объекты Django

ну получил, я строку по вашему примеру ‘name_en’, что дальше? Как эту строку динамически вставлять в объект b=Blog(name_en='first2')?

Офлайн

#7 Март 19, 2015 11:19:25

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Объекты Django

 b=Blog(**{"name_en": 'first2'})
Это нужно было?



Офлайн

#8 Март 19, 2015 12:05:29

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

Объекты Django

а если сделать запись вида:

b.name_en='first2' 

Офлайн

#9 Март 19, 2015 12:10:19

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Объекты Django

Уважаемый, вы на форуме почти три года.
За эти три года вы не удосужились освоить элементарных базовых знаний о языке. Вы не знаете, что такое setattr и зачем он нужен? За три года?



Офлайн

#10 Март 19, 2015 12:14:50

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

Объекты Django

у меня был перерыв

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version