반응형
사전을 만들 때 장고 모델에게 전달할 수 있습니까?
이것과 비슷한 것을 할 수 있습니까?list
,dictionary
아니면 다른 것?
data_dict = {
'title' : 'awesome title',
'body' : 'great body of text',
}
Model.objects.create(data_dict)
확장할 수 있다면 더욱 좋습니다.
Model.objects.create(data_dict, extra='hello', extra2='world')
한다면title
그리고.body
모델의 필드입니다. 그러면 ** 연산자를 사용하여 사전에서 키워드 인수를 전달할 수 있습니다.
모델이 호출되었다고 가정합니다.MyModel
:
# create instance of model
m = MyModel(**data_dict)
# don't forget to save to database!
m.save()
두 번째 질문에 대해서는 사전이 최종 인수여야 합니다.다시.extra
그리고.extra2
모델의 필드여야 합니다.
m2 =MyModel(extra='hello', extra2='world', **data_dict)
m2.save()
모든 모델에 대해DummyModel
사용할 수 있습니다.DummyModel.objects.create(**data_dict)
생성 후 저장할 필요가 없습니다.
질문에 대한 직접적인 대답은 아니지만, 저는 이 코드가 제가 올바른 답에 잘 저장되는 딕트를 만드는 데 도움이 되었다는 것을 발견했습니다.이 데이터를 json으로 내보내려면 형식 변환이 필요합니다.
이것이 도움이 되기를 바랍니다.
#mod is a django database model instance
def toDict( mod ):
import datetime
from decimal import Decimal
import re
#Go through the object, load in the objects we want
obj = {}
for key in mod.__dict__:
if re.search('^_', key):
continue
#Copy my data
if isinstance( mod.__dict__[key], datetime.datetime ):
obj[key] = int(calendar.timegm( ts.utctimetuple(mod.__dict__[key])))
elif isinstance( mod.__dict__[key], Decimal ):
obj[key] = float( mod.__dict__[key] )
else:
obj[key] = mod.__dict__[key]
return obj
def toCsv( mod, fields, delim=',' ):
import datetime
from decimal import Decimal
#Dump the items
raw = []
for key in fields:
if key not in mod.__dict__:
continue
#Copy my data
if isinstance( mod.__dict__[key], datetime.datetime ):
raw.append( str(calendar.timegm( ts.utctimetuple(mod.__dict__[key]))) )
elif isinstance( mod.__dict__[key], Decimal ):
raw.append( str(float( mod.__dict__[key] )))
else:
raw.append( str(mod.__dict__[key]) )
return delim.join( raw )
언급URL : https://stackoverflow.com/questions/1571570/can-a-dictionary-be-passed-to-django-models-on-create
반응형
'programing' 카테고리의 다른 글
목록의 Python os.path.join() (0) | 2023.07.21 |
---|---|
열 이름을 기준으로 여러 열 삭제 (0) | 2023.07.21 |
Python 단위 테스트에서 메서드가 호출되었다고 주장합니다. (0) | 2023.07.21 |
SqlAlchemy - 관계 속성별 필터링 (0) | 2023.07.21 |
PathLib에서 디렉터리를 재귀적으로 제거하시겠습니까? (0) | 2023.07.21 |