Форум сайта python.su
Никак не могу придумать, как правильно реализовать сохранение изменённой пользователем записи.
Имеется такая модель:
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
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>
Офлайн
Воспользуйтесь формами – там этот функционал уже реализован.
Офлайн
Daevaorn, дело в том, что количество чекбоксов в форме будет варьироваться, и нельзя сделать точную модель формы.
Офлайн
MutagenaНе поверите, но и этот вопрос в формах тоже решен:-)
дело в том, что количество чекбоксов в форме будет варьироваться,
Офлайн
Daevaorn, а можно пример с использованием моего случая, пожалуйста?
Офлайн