새로운 인스턴스 (행)를 저장하려는 모델이 있습니다. ForeignKey에 대한 기본 키가 있지만 개체 자체가 없습니다 (어딘가에서 온 것으로 가정). 원시 SQL없이 인스턴스를 확보 할 필요없이 저장할 수있는 방법이 있습니까?외부 객체 인스턴스를 검색하지 않고 ForeignKey를 저장하는 방법은 무엇입니까?
class UserLocale(models.Model):
user = models.ForeignKey(KingUser)
locale = models.ForeignKey(Locale)
가 지금은 로케일 기본 키 ('ko 페이지를')이 있지만이 객체 자체가없는 가정 : 여기
모델이다. 내가 원시 SQL 한 단계에서 그것을 할 수있어def save_locale(user_instance, locale_name):
locale = Locale.objects.get(pk=locale_name)
UserLocale.objects.create(user=user_instance, locale=locale)
,하지만 난 장고 쿼리 모델에서 그것을 할 수 있는지 궁금 해서요 : 내가 그것을 저장하고 있어요 것은 이것이다.
편집 :
예, UserLocale는 M2M 중간 테이블입니다. ManyToMany 필드를 만드는 것이 좋겠지 만 레거시 코드입니다.
def save_raw_sql(user_instance, locale_name):
query = """
INSERT INTO
project_userlocale (user_id, locale_id)
values (%s, %s)
"""
UserLocale.objects.raw(query, [user_instance.id, locale_name])
생각보다 간단합니다. 감사합니다. – Piva