Im пытается сохранить значение в текстовое поле в django с задачей celery, но если текстовое поле имеет значение, я хочу добавить новое значение к старому значению.Добавить новое значение в старое значение
Вот моя модель:
class Profile(models.Model):
username = models.CharField(max_length=200)
info = models.TextField(blank=True)
Вот что я пробовал:
@shared_task
def update_profile(data, profile_username):
#Get the profile
profile = Profile.objects.get(username=profile_username) #(WORKING)
#Check if info is in dataset
if 'info' in data: #(WORKING)
#Check if there is an old value
if profile.info: #(WORKING)
#Old value found
old_info = profile.info
#Append old and new value
new_info = '{}\n{}'format(old_info, data['info'])
profile.info = new_info
else:
#No old value fond, save the new value
profile.info = data['info'] #(WORKING)
#Save profile
profile.save() #(WORKING)
Если поле не имеет прежнего значения, я могу сохранить новое значение просто отлично, но когда я пытаюсь сохранить старое и новое значение вместе, я не буду работать! Я могу сохранить только один из них, а не «обновлять» поле, как я хочу.
Edit:
теперь я вижу, что new_info = '{}\n{}'format(old_info, data['info'])
работает, но я получаю эту ошибку: UnicodeEncodeError('ascii', u'Test\xf8', 128, 129, 'ordinal not in range(128)')
ли эта строка 'профиль = Profile.objects.get (профиль = профиль)' действительно получить профиль? 'Profile' не имеет атрибута' profile'. – 2014-09-25 09:03:43
Да, да. Обновлен код вопроса, так что это более понятно. –
Вы пробовали очевидный вариант: 'profile.info = '{} \ n {}'. Format (profile.info, data ['info'])'? –