J'essaie de mettre en place des liens vers une vue qui permet d'éditer des objets, dans la vue précédente. Modèle:Django Modèles absolue url - ce que je fais mal
class List(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=200)
type = models.PositiveIntegerField(choices=TYPE_DICT)
def __unicode__(self):
return self.name
@models.permalink
def get_absolute_url(self):
return ('EditList', None, {'list_id':self.id})
Vue:
lists = List.objects.filter(user=request.user)
array = []
for list in lists:
ListDict = {'Name':list.name, 'type':types[str(list.type)], 'edit':list }
array.append(ListDict)
context = { 'array':array,}
Modèle:
{% for dict in array %}
<tr>
{% for key,value in dict.items %}
{% ifequal key 'edit' %}
<td>{{ key }}</td><td><a href="{{ value.get_absolute_url }}">{{ value.name }}</a></td>
{% else %}
<td>{{ key }}: </td><td>{{ value }}</td>
{% endifequal %}
{% endfor %}
</tr>
{% endfor %}
et urls: conf
urlpatterns = patterns('tst.list.views',
(r'^$', 'list'),
(r'^edit/(?P<list_id>\d+)/$', 'EditList')
,
Qu'est-ce que cette ligne avec lien me donne est http://localhost/list/ comme url, non http://localhost/list/edit/[objectid]/
Quelqu'un peut-il s'il vous plaît me dire ce que je fais mal?
Alan
Qu'est-ce que 'dict' dans le modèle? Vous passez une liste confusément appelée 'array' dans le contexte, mais je ne vois rien qui s'appelle' dict'. –
Désolé. Il semble que j'ai oublié une partie du code. dict fait partie du tableau qui est mis en place dans la vue - ListDict –
et Valeur est l'objet Liste –