Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Помогите правильно реализовать сохрание [RSS Feed]

#1 Фев. 9, 2010 10:35:00

Mutagena
От:
Зарегистрирован: 2009-10-18
Сообщения: 295
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите правильно реализовать сохрание

Никак не могу придумать, как правильно реализовать сохранение изменённой пользователем записи.
Имеется такая модель:

class SiteCategory(models.Model):
freelance_site = models.ForeignKey(FreelanceSite)
site_category = models.CharField(max_length=70)

def __unicode__(self):
return self.site_category

class Category(models.Model):
site_category = models.ManyToManyField(SiteCategory)
category = models.CharField(max_length=70)

def __unicode__(self):
return self.category

class UsersCategory(models.Model):
user = models.ForeignKey(User)
categories = models.ManyToManyField(Category)

def __unicode__(self):
return self.user.username
Нужно сделать так, что пользователь мог изменять список categories в UsersCategory.

Я делаю такое представление:
def setcat(request):
if not request.user.is_authenticated():
return HttpResponseRedirect('/')
if request.method == 'POST':
check_list = []
while i <= len(category_list):
checkbox = 'cat%s' % str(i)
if checkbox in request.POST: check_list.append(True)
else: check_list.append(False)
i += 1
# здесь непонятно
category_list = Category.objects.all()
user_categories = []
try:
user_category_list = UsersCategory.objects.get(user=request.user)
except UsersCategory.DoesNotExist:
for category in category_list:
user_categories.append({'category':category, 'check': False})
else:
for category in category_list:
for user_category in user_category_list.categories:
check = False
if user_category.category == category_list.category:
check = True
user_categories.append({'category':category, 'check': check})
return render_to_response('web/setcat.html',
{'user_categories': user_categories,
},
context_instance=RequestContext(request)
)
В шаблоне:
				<div class="line">
<form action="" method="post">
{% for category in user_categories %}
<p><input type="checkbox" value="{{ category.check }}" name="cat{{ forloop.counter }}">{{ category.category|safe }}</p>
{% endfor %}
<input type="submit" value="Сохранить">
</form>
</div>
Пользователь должен выбрать определённые чекбоксы на форме и нажать “Сохранить”. После этого в categories должен записаться список соответствующих категорий.
Задача как бы проста, но никак не могу найти правильного решения.



Офлайн

#2 Фев. 9, 2010 11:39:39

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Помогите правильно реализовать сохрание

Воспользуйтесь формами – там этот функционал уже реализован.



Офлайн

#3 Фев. 9, 2010 12:23:06

Mutagena
От:
Зарегистрирован: 2009-10-18
Сообщения: 295
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите правильно реализовать сохрание

Daevaorn, дело в том, что количество чекбоксов в форме будет варьироваться, и нельзя сделать точную модель формы.



Офлайн

#4 Фев. 9, 2010 12:26:13

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Помогите правильно реализовать сохрание

Mutagena
дело в том, что количество чекбоксов в форме будет варьироваться,
Не поверите, но и этот вопрос в формах тоже решен:-)



Офлайн

#5 Фев. 9, 2010 17:36:37

Mutagena
От:
Зарегистрирован: 2009-10-18
Сообщения: 295
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите правильно реализовать сохрание

Daevaorn, а можно пример с использованием моего случая, пожалуйста?



Офлайн

  • Начало
  • » Django
  • » Помогите правильно реализовать сохрание[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version