Changeset 8846
- Timestamp:
- 09/02/08 01:10:14 (4 months ago)
- Files:
-
- django/trunk/django/contrib/admin/widgets.py (modified) (3 diffs)
- django/trunk/tests/regressiontests/admin_widgets/models.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/contrib/admin/widgets.py
r8823 r8846 106 106 107 107 def render(self, name, value, attrs=None): 108 from django.contrib.admin.views.main import TO_FIELD_VAR109 108 related_url = '../../../%s/%s/' % (self.rel.to._meta.app_label, self.rel.to._meta.object_name.lower()) 110 params = {}111 if self.rel.limit_choices_to:112 params.update(dict([(k, ','.join(v)) for k, v in self.rel.limit_choices_to.items()]))113 params.update({TO_FIELD_VAR: self.rel.get_related_field().name})114 url = '?' + '&'.join(['%s=%s' % (k, v) for k, v in params.items()])109 params = self.url_parameters() 110 if params: 111 url = '?' + '&'.join(['%s=%s' % (k, v) for k, v in params.items()]) 112 else: 113 url = '' 115 114 if not attrs.has_key('class'): 116 115 attrs['class'] = 'vForeignKeyRawIdAdminField' # The JavaScript looks for this hook. … … 124 123 output.append(self.label_for_value(value)) 125 124 return mark_safe(u''.join(output)) 126 125 126 def base_url_parameters(self): 127 params = {} 128 if self.rel.limit_choices_to: 129 params.update(dict([(k, ','.join(v)) for k, v in self.rel.limit_choices_to.items()])) 130 return params 131 132 def url_parameters(self): 133 from django.contrib.admin.views.main import TO_FIELD_VAR 134 params = self.base_url_parameters() 135 params.update({TO_FIELD_VAR: self.rel.get_related_field().name}) 136 return params 137 127 138 def label_for_value(self, value): 128 139 key = self.rel.get_related_field().name … … 145 156 value = '' 146 157 return super(ManyToManyRawIdWidget, self).render(name, value, attrs) 147 158 159 def url_parameters(self): 160 return self.base_url_parameters() 161 148 162 def label_for_value(self, value): 149 163 return '' django/trunk/tests/regressiontests/admin_widgets/models.py
r8823 r8846 70 70 >>> w = ForeignKeyRawIdWidget(rel) 71 71 >>> print conditional_escape(w.render('test', band.pk, attrs={})) 72 <input type="text" name="test" value="1" class="vForeignKeyRawIdAdminField" /><a href="../../../admin_widgets/band/ " class="related-lookup" id="lookup_id_test" onclick="return showRelatedObjectLookupPopup(this);"> <img src="%(ADMIN_MEDIA_PREFIX)simg/admin/selector-search.gif" width="16" height="16" alt="Lookup" /></a> <strong>Linkin Park</strong>72 <input type="text" name="test" value="1" class="vForeignKeyRawIdAdminField" /><a href="../../../admin_widgets/band/?t=id" class="related-lookup" id="lookup_id_test" onclick="return showRelatedObjectLookupPopup(this);"> <img src="%(ADMIN_MEDIA_PREFIX)simg/admin/selector-search.gif" width="16" height="16" alt="Lookup" /></a> <strong>Linkin Park</strong> 73 73 74 74 >>> m1 = Member.objects.create(pk=1, name='Chester') … … 101 101 >>> w = ForeignKeyRawIdWidget(rel) 102 102 >>> print w.render('test', core.parent_id, attrs={}) 103 <input type="text" name="test" value="86" class="vForeignKeyRawIdAdminField" /><a href="../../../admin_widgets/inventory/ " class="related-lookup" id="lookup_id_test" onclick="return showRelatedObjectLookupPopup(this);"> <img src="/admin_media/img/admin/selector-search.gif" width="16" height="16" alt="Lookup" /></a> <strong>Apple</strong>103 <input type="text" name="test" value="86" class="vForeignKeyRawIdAdminField" /><a href="../../../admin_widgets/inventory/?t=barcode" class="related-lookup" id="lookup_id_test" onclick="return showRelatedObjectLookupPopup(this);"> <img src="%(ADMIN_MEDIA_PREFIX)simg/admin/selector-search.gif" width="16" height="16" alt="Lookup" /></a> <strong>Apple</strong> 104 104 """ % { 105 105 'ADMIN_MEDIA_PREFIX': settings.ADMIN_MEDIA_PREFIX,
