У меня есть две модели Django следующим образом:Джанго: обновление сразу две модели
class Skill(models.Model):
title = models.CharField(max_length=255)
def __unicode__(self):
return self.title
class UserSkills(models.Model):
user = models.ForeignKey(User)
skill = models.ManyToManyField(Skill)
def __unicode__(self):
return '%s | %s' % (self.user, self.skill)
Теперь у меня есть списки навыков, связанных с пользователем, который я хочу, чтобы одновременно обновить модель навыков и связанных с ними навыков Пользователя , Что-то вроде:
# cleaned_skills[] is list if unicode strings
for skill in cleaned_skills:
s, created = Skill.objects.get_or_create(title=skill)
s.save()
u, created = UserSkills.objects.get_or_create(skill=s, user=request.user)
u.save()
По какой-то причине это мне не подходит. Есть ли способ, которым я должен одновременно обновлять модели Skill
и User
?
вы должны использовать сигнал 'post_save' на модели' Skill' для создания объекта 'UserSkills' – karthikr
Ok. Это имеет смысл, хотя я признаю, что не очень хорошо знаком с сигналами. –
Имеется много доступной справки. Особенно на SO. Вы должны быть в порядке – karthikr