Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 21, 2013 15:39:12

Xam
От:
Зарегистрирован: 2011-01-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с forms из моделей

Доброе время суток!
Есть модели

class MuscleGroup(models.Model):
    name = models.CharField(max_length=50)
    descr_text = models.TextField(')
		
class Exercise(models.Model):
    name = models.CharField (max_length=50)
    muscle = models.ManyToManyField (MuscleGroup)
    descr_text = models.TextField (blank=True)
		
class Training(models.Model):
    author_user = models.ForeignKey(User)
    train_date = models.DateField()
    title = models.CharField (max_length=50, blank=True)
		
class Reps(models.Model):
    muscle_group = models.ForeignKey(MuscleGroup)
    training = models.ForeignKey(Training)
    exercise = models.ForeignKey(Exercise)
    work_count = models.IntegerField()
    work_weight = models.IntegerField()

есть views
@login_required
@csrf_exempt
def reps_add(request, training_id):
    user = request.user
    tr_list = Training.objects.filter(author_user=user)
    train = get_object_or_404 (tr_list, pk=training_id)
    RepsFormSet = inlineformset_factory(Training, Reps, extra=5)
    if request.method == 'POST':
        formset = RepsFormSet(request.POST, instance=train)
        if formset.is_valid():
            formset.save()
            return HttpResponseRedirect (reverse(training_detail, args=(training_id,)))
    else:
        formset = RepsFormSet(instance=train)
    return render_to_response ('reps_add.html', {'formset':formset, 'user':user})
Есть template
<form action='' method='POST'>
	{{ formset.management_form }}
    {% for form in formset %}
        {{ form.id }}
		{{ form.errors }}
		<table>
			<tr>
                <td> {{ form.muscle_group }} </td>
				<td> {{ form.exercise }} </td>
				<td> {{ form.work_count }} </td>
				<td> {{ form.work_weight }} </td>
				{% if formset.can_delete %}
					<td>Удалить :{{ form.DELETE }} </td>
				{% endif %}
			</tr>
		</table>
    {% endfor %}
	<input type = 'submit' value='Add' />
	</form>
Внимание вопрос. Я не пойму как мне при выборе определенного значения в {{ form.muscle_group }} (например “спина”) высыпались в к нему подвязанные {{ form.exercise }} (например “подтягивания”). У меня получается выбрать все в подряд.



Офлайн

#2 Авг. 21, 2013 15:50:10

flip89
От:
Зарегистрирован: 2011-10-21
Сообщения: 28
Репутация: +  2  -
Профиль   Отправить e-mail  

Помогите с forms из моделей

{% for exercise in form.muscle_group.exercise_set.all %}
<td>{{ exercise }}</td>
{% endfor %}



Офлайн

#3 Авг. 21, 2013 16:52:56

Xam
От:
Зарегистрирован: 2011-01-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с forms из моделей

Не помогло, {{ exercise }} просто исчезло из формы



Офлайн

#4 Авг. 23, 2013 18:55:49

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Помогите с forms из моделей

> Внимание вопрос. Я не пойму как мне при выборе определенного значения в {{ form.muscle_group }} (например “спина”) высыпались в к нему подвязанные {{ form.exercise }} (например “подтягивания”). У меня получается выбрать все в подряд.

С помощью AJAX подгружайте варианты для select-поля в зависимости от значения в другом поле. Да, а кто говорил, что будет легко?

Офлайн

#5 Авг. 29, 2013 10:17:56

Xam
От:
Зарегистрирован: 2011-01-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с forms из моделей

Спасибо.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version