2
기존 Django 모델 객체의 여러 필드에 값을 설정하는 가장 좋은 방법을 알고 싶습니다. 나는 많은 분야가 포함 된 모델이 있습니다 또한Django Db 레코드에 여러 필드를 설정하는 방법
class Foo(models.Model):
Field1 = models.CharField(max_length=40)
Field2 = models.CharField(max_length=40)
Field3 = models.CharField(max_length=40)
etc...
을 나는이 사전에 특정 레코드에 대한 해당 필드의 부분 집합을 변경 포함 :
data = {'field1': 'value1', 'field5': 'value5', 'field7': 'value7'}
record = Foo.objects.get(pk=1)
내가 함께 record
의 필드를 설정할을 새 값은 data
입니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 사전을 풀고 레코드의 해당 필드를 수정하는 방법이 있습니까? 이런 있나요
entry.set_values(**data)
또는 내가 잘못된 길을 갈거야 :
for k, v in data.iteritems():
setattr(entry, k, v)
entry.save()
내가 좋아하는 뭔가를 호출 할 수있는 방법이있을 수 있습니다 생각
: 내가 사용하는 사전을 반복 할 수 있습니다 실현 ?
업데이트 검색어 세트에서만 사용할 수 있지만이 작품 Foo.objects .filter (pk = 1) .update (** 데이터). 제안 해 주셔서 감사합니다. –
저장 관련 신호가 발생하지 않으며 인스턴스에서 .save()를 호출하지 않습니다. 이는 원하는 상황이거나 거래 차단 자일 수 있습니다. 'Foo.objects.filter (pk = 1) .update (** date);를 할 수 있습니다. 이 작업이 필요할 경우 Foo.objects.get (pk = 1) .save()를 실행하십시오. –
좋은 캐치 브라이언! – Brandon