mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #14529 -- Fixed representation of model names in admin messages after model object changes when the ModelAdmin queryset() uses defer() or only(). Thanks rlaager for report and initial patch, to rasca an julien for help in tracking the problem.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15596 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -36,7 +36,7 @@ from models import (Article, BarAccount, CustomArticle, EmptyModel,
|
||||
Language, Collector, Widget, Grommet, DooHickey, FancyDoodad, Whatsit,
|
||||
Category, Post, Plot, FunkyTag, Chapter, Book, Promo, WorkHour, Employee,
|
||||
Question, Answer, Inquisition, Actor, FoodDelivery,
|
||||
RowLevelChangePermissionModel)
|
||||
RowLevelChangePermissionModel, Paper, CoverLetter)
|
||||
|
||||
|
||||
class AdminViewBasicTest(TestCase):
|
||||
@@ -2029,6 +2029,37 @@ class AdminCustomQuerysetTest(TestCase):
|
||||
else:
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_add_model_modeladmin_only_qs(self):
|
||||
# only() is used in ModelAdmin.queryset()
|
||||
p = Paper.objects.create(title=u"My Paper Title")
|
||||
self.assertEqual(Paper.objects.count(), 1)
|
||||
response = self.client.get('/test_admin/admin/admin_views/paper/%s/' % p.pk)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
post_data = {
|
||||
"title": u"My Modified Paper Title",
|
||||
"_save": "Save",
|
||||
}
|
||||
response = self.client.post('/test_admin/admin/admin_views/paper/%s/' % p.pk,
|
||||
post_data, follow=True)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
# Message should contain non-ugly model name. Instance representation is set by unicode() (ugly)
|
||||
self.assertContains(response, '<li class="info">The paper "Paper_Deferred_author object" was changed successfully.</li>')
|
||||
|
||||
# defer() is used in ModelAdmin.queryset()
|
||||
cl = CoverLetter.objects.create(author=u"John Doe")
|
||||
self.assertEqual(CoverLetter.objects.count(), 1)
|
||||
response = self.client.get('/test_admin/admin/admin_views/coverletter/%s/' % cl.pk)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
post_data = {
|
||||
"author": u"John Doe II",
|
||||
"_save": "Save",
|
||||
}
|
||||
response = self.client.post('/test_admin/admin/admin_views/coverletter/%s/' % cl.pk,
|
||||
post_data, follow=True)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
# Message should contain non-ugly model name. Instance representation is set by model's __unicode__()
|
||||
self.assertContains(response, '<li class="info">The cover letter "John Doe II" was changed successfully.</li>')
|
||||
|
||||
class AdminInlineFileUploadTest(TestCase):
|
||||
fixtures = ['admin-views-users.xml', 'admin-views-actions.xml']
|
||||
urlbit = 'admin'
|
||||
|
||||
Reference in New Issue
Block a user