<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/django/contrib/contenttypes/admin.py, branch main</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=main</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2026-04-07T11:12:16Z</updated>
<entry>
<title>Fixed CVE-2026-4277 -- Checked add permissions in GenericInlineModelAdmin.</title>
<updated>2026-04-07T11:12:16Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-03-12T15:00:05Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=ef8b25dcc06d158683a5623ce406d561638f4073'/>
<id>urn:sha1:ef8b25dcc06d158683a5623ce406d561638f4073</id>
<content type='text'>
Edit permissions were still checked as part of ordinary form validation,
but because GenericInlineModelAdmin overrides get_formset(), it lacked
InlineModelAdmin's dynamic DeleteProtectedModelForm.has_changed() logic
for checking permissions server-side, leaving the add case unaddressed.

This change reimplements the relevant part of InlineModelAdmin.get_formset().

Thanks N05ec@LZU-DSLab for the report, and Natalia Bidart,
Markus Holtermann, and Simon Charette for reviews.
</content>
</entry>
<entry>
<title>Refs #36500 -- Rewrapped long docstrings and block comments via a script.</title>
<updated>2025-07-23T23:17:55Z</updated>
<author>
<name>django-bot</name>
<email>ops@djangoproject.com</email>
</author>
<published>2025-07-23T03:41:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=69a93a88edb56ba47f624dac7a21aacc47ea474f'/>
<id>urn:sha1:69a93a88edb56ba47f624dac7a21aacc47ea474f</id>
<content type='text'>
Rewrapped long docstrings and block comments to 79 characters + newline
using script from https://github.com/medmunds/autofix-w505.
</content>
</entry>
<entry>
<title>Refs #33476 -- Refactored code to strictly match 88 characters line length.</title>
<updated>2022-02-07T19:37:05Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2022-02-04T07:08:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=7119f40c9881666b6f9b5cf7df09ee1d21cc8344'/>
<id>urn:sha1:7119f40c9881666b6f9b5cf7df09ee1d21cc8344</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #33476 -- Reformatted code with Black.</title>
<updated>2022-02-07T19:37:05Z</updated>
<author>
<name>django-bot</name>
<email>ops@djangoproject.com</email>
</author>
<published>2022-02-03T19:24:19Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=9c19aff7c7561e3a82978a272ecdaad40dda5c00'/>
<id>urn:sha1:9c19aff7c7561e3a82978a272ecdaad40dda5c00</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Used model's Options.label where applicable.</title>
<updated>2020-12-29T07:56:39Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2020-12-29T07:56:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=ce30e750e6259068ac348aa71f855a5f70d2d49f'/>
<id>urn:sha1:ce30e750e6259068ac348aa71f855a5f70d2d49f</id>
<content type='text'>
Follow up to b7a3a6c9ef0a89625881b47594120bca55fa2e49.</content>
</entry>
<entry>
<title>Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking.</title>
<updated>2017-12-11T12:08:45Z</updated>
<author>
<name>Nick Pope</name>
<email>nick.pope@flightdataservices.com</email>
</author>
<published>2017-12-11T12:08:45Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=d13a9e44ded4e93570c6ba42ec84e45ddca2505b'/>
<id>urn:sha1:d13a9e44ded4e93570c6ba42ec84e45ddca2505b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #28860 -- Removed unnecessary len() calls.</title>
<updated>2017-12-04T15:35:23Z</updated>
<author>
<name>Дилян Палаузов</name>
<email>Dilyan.Palauzov@db.com</email>
</author>
<published>2017-11-29T16:54:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=d2afa5eb2308e672b6313876856e32e2561b90f3'/>
<id>urn:sha1:d2afa5eb2308e672b6313876856e32e2561b90f3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #23919 -- Removed encoding preambles and future imports</title>
<updated>2017-01-18T08:55:19Z</updated>
<author>
<name>Claude Paroz</name>
<email>claude@2xlibre.net</email>
</author>
<published>2016-11-19T17:19:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=d7b9aaa366dd54ecc3142c588162e3adc7c2f7ac'/>
<id>urn:sha1:d7b9aaa366dd54ecc3142c588162e3adc7c2f7ac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #16508 -- Renamed the current "virtual" fields to "private".</title>
<updated>2016-04-13T14:10:53Z</updated>
<author>
<name>Michal Petrucha</name>
<email>michal.petrucha@koniiiik.org</email>
</author>
<published>2016-03-20T17:10:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=c339a5a6f72690cd90d5a653dc108fbb60274a20'/>
<id>urn:sha1:c339a5a6f72690cd90d5a653dc108fbb60274a20</id>
<content type='text'>
The only reason why GenericForeignKey and GenericRelation are stored
separately inside _meta is that they need to be cloned for every model
subclass, but that's not true for any other virtual field. Actually,
it's only true for GenericRelation.
</content>
</entry>
<entry>
<title>Removed unneeded hint=None/obj=None in system check messages.</title>
<updated>2016-02-12T18:01:25Z</updated>
<author>
<name>Tim Graham</name>
<email>timograham@gmail.com</email>
</author>
<published>2016-02-12T16:36:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=004ba0f99eb25c3f32aa3a41707534e955d1878e'/>
<id>urn:sha1:004ba0f99eb25c3f32aa3a41707534e955d1878e</id>
<content type='text'>
</content>
</entry>
</feed>
