Вы можете попробовать это также
private static AutoResetEvent _wait = new AutoResetEvent(false);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Dosomething();
}
private void Dosomething()
{
//Your Loop
for(int i =0;i<10;i++)
{
//Dosomething
_wait._wait.WaitOne();//Pause the loop until the button was clicked.
}
}
private void btn1_Click(object sender, EventArgs e)
{
_wait.Set();
}
Как указывали другие, обе ваши проблемы лучше всего решать вне шаблона - либо в моделях, либо в виде. Одна из стратегий - добавить вспомогательные методы к соответствующим классам.
Получение отсортированного списка пациентов врача:
class Physician(Model):
...
def sorted_patients(self):
return self.patients.order_by('bed__room__unit',
'bed__room__order',
'bed__order')
И в шаблоне используйте Physician.sorted_patients
, а не doctor. Пациенты
.
Для «отображения заметок этого note_type» похоже, что вам может понадобиться метод notes
для класса note_type. Из вашего описания я не уверен, модельный это класс или нет, но принцип тот же:
class NoteType:
...
def notes(self):
return <calculate note set>
И затем шаблон:
{% for note_type in note_types %}
<div><h3>{{ note_type }}</h3></div>
{% for note in note_type.notes %}
<p>{{ note }}</p>
{% endfor %}
</div>
{% endfor %}
«Я бы хотел сделать это из шаблона:»
Не надо. Сделайте это в функции просмотра, которой она принадлежит.
Поскольку вопрос неполный, невозможно угадать модель данных и предоставить точное решение.
results= physician.patients.order_by('bed__room__unit', 'bed__room__order', 'bed__order')
Должно быть достаточно. Предоставьте результатов
шаблону для рендеринга. Это в правильном порядке.
Если сортировка не выполняется должным образом (возможно, из-за какой-то тонкой модели), тогда у вас всегда есть такая альтернатива.
def by_unit_room_bed( patient ):
return patient.bed.room.unit, patient.bed.room.order, patient.bed.order
patient_list = list( physician.patients )
patient_list.sort( key=by_unit_room_bed )
Предоставьте список пациентов
в шаблон для визуализации. Это в правильном порядке.
«Как вы индексируете список внутри шаблона»
Я не уверен, что вы пытаетесь сделать, но в большинстве случаев ответ: «Не ". Сделайте это в функции просмотра.
Шаблон просто перебирает простые списки, заполняя простые HTML-шаблоны.
Если это кажется слишком сложным для шаблона, то это так. Сохраняйте простой шаблон - это всего лишь презентация. Обработка происходит в функции просмотра
def by_unit_room_bed( patient ):
return patient.bed.room.unit, patient.bed.room.order, patient.bed.order
patient_list = list( physician.patients )
patient_list.sort( key=by_unit_room_bed )
Предоставить список пациентов
в шаблон для визуализации. Это в правильном порядке.
«Как вы индексируете список внутри шаблона»
Я не уверен, что вы пытаетесь сделать, но в большинстве случаев ответ: «Не ". Сделайте это в функции просмотра.
Шаблон просто перебирает простые списки, заполняя простые HTML-шаблоны.
Если это кажется слишком сложным для шаблона, то это так. Сохраняйте простой шаблон - это всего лишь презентация. Обработка происходит в функции просмотра
def by_unit_room_bed( patient ):
return patient.bed.room.unit, patient.bed.room.order, patient.bed.order
patient_list = list( physician.patients )
patient_list.sort( key=by_unit_room_bed )
Предоставить список пациентов
в шаблон для визуализации. Это в правильном порядке.
«Как вы индексируете список внутри шаблона»
Я не уверен, что вы пытаетесь сделать, но в большинстве случаев ответ: «Не ". Сделайте это в функции просмотра.
Шаблон просто перебирает простые списки, заполняя простые HTML-шаблоны.
Если это кажется слишком сложным для шаблона, то это так. Сохраняйте простой шаблон - это всего лишь презентация. Обработка происходит в функции просмотра
Шаблон просто перебирает простые списки, заполняя простые HTML-шаблоны.
Если это кажется слишком сложным для шаблона, то это так. Сохраняйте простой шаблон - это всего лишь презентация. Обработка происходит в функции просмотра
Шаблон просто перебирает простые списки, заполняя простые HTML-шаблоны.
Если это кажется слишком сложным для шаблона, то это так. Сохраняйте простой шаблон - это всего лишь презентация. Обработка происходит в функции просмотра
Вы сможете создать упорядоченный набор запросов в своем представлении и передать его в шаблон:
def myview(request):
patients = Physician.patients.order_by('bed__room__unit',
'bed__room__order',
'bed__order')
return render_to_response('some_template.html',
dict(patients=patients),
mimetype='text/html')
Ваш шаблон может затем перебрать пациентов
, которые будут содержать упорядоченные результаты. Разве у вас это не работает?
РЕДАКТИРОВАТЬ: Для индексации просто используйте синтаксис с точкой: mylist.3
в шаблоне становится mylist [3]
в python. См. http://docs.djangoproject.com/en/dev/ref/templates/api/#rendering-a-context для получения дополнительной информации.
Это один из способов, хотя и очень уродливый:
{ % для примечания в note_sets | slice: "forloop.counter0" | first%}