Простое? отображение данных на форме (логика работы) - Python

Узнай цену своей работы

Формулировка задачи:

PostgreSQL, django 1.9, python 2.7.9 Прошел учебник. В нем формы генерятся в html шаблонах, но на просторах интернета часто можно увидеть, что люди создают формы в forms.py (собственно вне учебника в руководстве по django описываюстя прелести создание форм в джанго, а не в html с помощью автоматических виджетов) Итак происходит попытка сделать достаточно простую штуку - показать пользователю выпадаюий список из базы данных.: html:
Листинг программы
  1. <form action="/your-name/" method="post">
  2. {% csrf_token %}
  3. Выберите отделение:<br>
  4. {{ form }}
  5. <input type="submit" value="Submit" />
  6. </form>
forms.py:
Листинг программы
  1. from django import forms
  2. from .models import DirDep
  3. dep_list = {DirDep.objects.values('dep_name'):DirDep.objects.values('dep_name')}
  4. class NameForm(forms.Form):
  5. favorite_colors = forms.CharField(label='Список отделений',widget=forms.Select(choices=dep_list))
views.py:
Листинг программы
  1. def get_name(request):
  2. # if this is a POST request we need to process the form data
  3. if request.method == 'POST':
  4. # create a form instance and populate it with data from the request:
  5. form = NameForm(request.POST)
  6. # check whether it's valid:
  7. if form.is_valid():
  8. # process the data in form.cleaned_data as required
  9. # ...
  10. # redirect to a new URL:
  11. return HttpResponseRedirect('/thanks/')
  12. # if a GET (or any other method) we'll create a blank form
  13. else:
  14. form = NameForm()
  15. return render(request, 'devreg/name.html', {'form': form})
модель:
Листинг программы
  1. class DirDep(models.Model):
  2. dep_sid = models.IntegerField(primary_key=True)
  3. lpu_sid = models.IntegerField(blank=True, null=True)
  4. dep_name = models.CharField(max_length=256, blank=True, null=True)
  5. def __unicode__(self):
  6. return self.dep_name
  7. class Meta:
  8. managed = False
  9. db_table = 'dir_dep'
Собственно я так и не осознал на 100% логику движения данных в django... Можно подробно - кто что откуда берет и куда отдает? А так же в базе хранятся названия на русском, сейчас вот этот код выдает это:
Спойлер

Решение задачи: «Простое? отображение данных на форме (логика работы)»

textual
Листинг программы
  1. class LinkSensorRoomLink(models.Model):
  2.     sensor_room_link_sid = models.IntegerField(primary_key=True)
  3.     room_bed_link_sid = models.ForeignKey(LinkRoomBedLink, db_column = 'room_bed_link_sid')
  4.     sensid = models.CharField(max_length=64, blank=True, null=True)
  5.     sysdate = models.DateTimeField(blank=True, null=True)
  6.     class Meta:
  7.         managed = False
  8.         db_table = 'link_sensor_room_link'

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут