Hab im Forum gelesen, dass der oben genannte Fehler kommt, wenn man versucht einen String wie eine Liste zu behandeln.
Ich hab mir den Typ der Variable ausgeben lassen und die Variable selbst, alles deutet auf eine Liste hin.
Code: Alles auswählen
type: <type 'list'>
results are: [{'entry_key': 22L, 'model_id': '1', 'nr_cavities': 1L, 'title':
'Solution NMR structure of UPF0107 protein AF_0055, Northeast Structural
Genomics Consortium Target GR101', 'protein': 1L, 'id': '2hi6'},
{'entry_key': 22L, 'model_id': '2', 'nr_cavities': 1L, 'title': 'Solution NMR
structure of UPF0107 protein AF_0055, Northeast Structural Genomics
Consortium Target GR101', 'protein': 1L, 'id': '2hi6'}, {'entry_key': 22L,
'model_id': '3', 'nr_cavities': 2L, 'title': 'Solution NMR structure of UPF0107
protein AF_0055, Northeast Structural Genomics Consortium Target
GR101', 'protein': 1L, 'id': '2hi6'}]
Code: Alles auswählen
{{ result }}
{% for item in result %}
<div id="{{ item.model_key }}" class="entry_model">
<div class="resolution">{{ item.resolution }} Å</div>
<div class="chkbox">
<input type="checkbox"
name="entry_key"
value="{{ item.entry_key }}"
checked="checked"/>
</div>
<div class="res_title">
<span class="add_info">
{{ item.pdb_code }} - {{ item.title|title }}</span>
</div>
<div class="model">model_id: {{ item.model_id }}
{% with item.nr_models|add:"-1" as other_models %}
{% if other_models %}
<span class="add_models">load other models</span>
{% endif %}
{% if dev %}entry_key: {{ item.entry_key }}{% endif %}
</div>
<div class="short_info">
{% if item.iface_cav %}
{{ item.iface_cav }} Interface{{ item.iface_cav|pluralize }}
by Cavity<br />
{% endif %}
{% if item.iface_lig %}
{{ item.iface_lig }} Interface{{ item.iface_lig|pluralize }}
by Ligand<br />
{% endif %}
{% if item.protein %}
{{ item.protein }} Protein chain{{ item.protein|pluralize }}
<br />
{% endif %}
{% if item.rna %}
{{ item.rna }} RNA chain{{ item.rna|pluralize }} <br />
{% endif %}
{% if item.dna %}
{{ item.dna }} DNA chain{{ item.dna|pluralize }} <br />
{% endif %}
</div>
<div class="long_info">
<div class="create_buttons"></div>
<div class="info"></div>
<div class="create_options"></div>
</div>
<div class="keys hidden">
<input name="entry_key" type="text" value="{{ item.entry_key }}" readonly="readonly" />
<input name="model_key" type="text" value="{{ item.model_key }}" readonly="readonly" />
<input name="model_id" type="text" value="{{ item.model_id }}" readonly="readonly" />
<input name="pdb_code" type="text" value="{{ item.pdb_code }}" readonly="readonly" />
<input name="count" type="text" value="{{ count }}" readonly="readonly" />
<input name="other_models" type="text" value="1" readonly="readonly" />
{% endwith %}
</div>
</div>
{% endfor %}
Code: Alles auswählen
def addmodels(request):
from bifinterface.interface.interface import WebInterface
from bifinterface.interface import output
interface = WebInterface(request.POST['database'],
request.session.get('tablename'))
cursor = interface.getCursor()
models = output.AddModels(cursor,request.POST['entrykey_modelid'])
results = models.getResults()
developer = False
for group in request.user.groups.all():
if group.name == 'developer':
developer = True
print "type: ", type(results)
print "results are: ", results
return render_to_response('interface/addmodels.html',
{'result' : results,
'dev' : developer,
'count' : request.POST['count'],
'string' : str(results)})
Ich dachte zuerst, dass es an dem request.POST['count'] liegt, aber selbst wenn ich das weg mache, bekomm ich den Fehler. In der Django Fehlerseite, sagt er mir, der Fehler liegt genau an in der zweiten Zeile des Templates. Die erste Zeile hab ich zum testen rein geschrieben, wenn diese allein steht, wird einfach der Inhalt als string ausgegeben.
Kann es wirklich sein, dass er die Variable falsch interpretiert?