8 ms·
Django 1.6 released
- EliAndrewC 13y agoThe release notes can be found at https://docs.djangoproject.com/en/1.6/releases/1.6/ https://docs.djangoproject.com/en/1.6/releases/1.6/ Personally, I'm happy that Python 3 is now officially supported, though in practice I haven't had an issues with using Django 1.5 with Python 3.
- speg 13y agoHow is library support? I didn't have any issues with django 1.5 itself, but many of my favorite libraries weren't ready yet.
- pydanny 13y agoDjango Packages lists 160 apps that work with Python 3. See https://www.djangopackages.com/python3/ https://www.djangopackages.com/python3/ From personal experience, most of the critical ones are compatible.
- kot-behemoth 13y agoWell, apart from Fabric.
- pydanny 13y agoFabric isn't part of Django. There is nothing specific about Django in Fabric. In fact, the vast majority of my deployments do not use Fabric.
- codonaut 13y agoDo you use something in place of Fabric?
- commixon 13y agoParamiko could be a good example i think...
- mixmastamyk 13y agoI was thinking something more like ansible. Of course I'm partial to my new pave project: https://bitbucket.org/mixmastamyk/pave https://bitbucket.org/mixmastamyk/pave It is based on fabric, and uses a yaml file to automate it.
- tutuca 13y agoNo, no, fabric uses paramiko as the ssh abstraction layer.
- kot-behemoth 13y agoI am aware of that, but I still consider it one of my favorite libraries, and thought it would be useful to mention that it's not yet py3k-ready. I can imagine quite a few people might depend on it. What are you using instead?
- jacobian 13y agoYou may want to check out Invoke (https://github.com/pyinvoke/invoke); https://github.com/pyinvoke/invoke); it's the successor to Fabric, and it's Python 3 compatible.
- mh- 13y agoHN appended that link: https://github.com/pyinvoke/invoke https://github.com/pyinvoke/invoke
- twsted 13y agoFor what I can see, Invoke is just a revamped version of Fabric’s task running components. Fabric 2.0 will "leverage Invoke for task running, leaving Fabric itself much more library oriented".
- calpaterson 13y agoFabric is on the way. Paramiko, the ssh library underlying Fabric, now has a Python 3 PR for which all tests pass: https://github.com/paramiko/paramiko/pull/233 https://github.com/paramiko/paramiko/pull/233
- mahmoudhossam 13y agoAnd reportlab
- ris 13y agoLast I looked reportlab doesn't even use new-style classes.
- jemeshsu 13y agoBoto (using SES for email) is main one. And supervisord if you want to keep your deployment Python 3 only.
- pydanny 13y agohttps://github.com/boto/boto3 https://github.com/boto/boto3 Still in progress, but there you go.
- mayhew 13y agoCircus is Python 3 compatible if people are looking for an alternative to supervisor. There's always the option of just using Upstart or systemd as well.
- yeukhon 13y agoCircus looks huge and doesn't appeal for one or two apps. I do however wish to experiment with circus at some point. Do you have any comparison to make, assuming you have used both? Or anyone out there? Thanks
- collyw 13y agoI think the MySQL one might be quite a big one for many people. I know Postgress is better (South tells me every time the migration doesn´t work) but for converting older projects it definitely going to be useful.
- valtron 13y agoHere's a useful site showing Py3 support for packages: https://python3wos.appspot.com https://python3wos.appspot.com
- collyw 13y agoThe standard MySQL driver wasn´t working the other day when I tried. That might be quite a big one for some people. I saw you could apply a patch, but I didn´t get round to trying yet.
- 47 13y agoAlpha release of Oracle MySQL Connector/Python http://dev.mysql.com/downloads/connector/python/ http://dev.mysql.com/downloads/connector/python/ actually works with Django 1.5+ and Python3. But you will be on the bleeding edge if you put it in production.
- valtron 13y agoYou could also try this: https://pypi.python.org/pypi/PyMySQL https://pypi.python.org/pypi/PyMySQL
- deleted 13y ago[deleted]
- andybak 13y agodjango-vanilla-views in core for 1.7 please. ;-)
- mjhea0 13y agoseconded :)
- snoonan 13y agoThirded! This is a better implementation for a framework. CBGV as-is would be better as an add-on app. This is a great example why framework projects could benefit from being a bit more democratic. Most people seem to be pulling their hair out, telling you something is too complicated to effectively use. The response: It's worth it once you learn. The complexity cost is worth it. Trust us. Read the docs (of course), use this 3rd party site (ok...), read the code. (so I can write a non-trivial view!?). If you are still giving that answer years later, you have to be open to the fact that that your users might be on to something. Often when you hear someone say they're using CBGV on a large project, you can almost sense the pause for applause.
- ubernostrum 13y agoI use the class-based generic views in a couple of projects. My personal opinion is that the official documentation still needs work, because people end up in the API reference tree looking for the examples and explanations. And that is not a happy place to end up when you're just starting out with them, since in there you're seeing the whole inheritance/mixin layout structure, which is what leads to the belief that it's too complicated to use. Which... no, class-based generics are pretty darned easy. Here are the views for my blog app, for example: https://github.com/ubernostrum/blog/blob/master/blog/views.py https://github.com/ubernostrum/blog/blob/master/blog/views.p... It'd be nice to cut down the use of super(), but that's about the only issue I have with it. All of the simpler-CBV implementations I've seen make a few too many assumptions for my personal taste, or otherwise cut down on flexibility in favor of simplifying the inheritance diagram, which I don't agree with as a goal in itself.
- 13y ago
- anan0s 13y agoare there any particular performance improvements over the previous versions ? I was thinking basically of transaction management, especially the autocommit behavior. I browsed through the docs and saw that the default python database API requires autocommit to be turned off... but then again django overrides this behavior. any comments on this ? (or am I completely lost ?)...
- masklinn 13y ago> Improved transaction management¶ > Django’s transaction management was overhauled. Database-level autocommit is now turned on by default. This makes transaction handling more explicit and should improve performance. The existing APIs were deprecated, and new APIs were introduced, as described in the transaction management docs. > Please review carefully the list of known backwards-incompatibilities to determine if you need to make changes in your code. > Persistent database connections¶ > Django now supports reusing the same database connection for several requests. This avoids the overhead of re-establishing a connection at the beginning of each request. For backwards compatibility, this feature is disabled by default. See Persistent connections for details.
- mbell 13y agoIt's hard to imagine using an ORM for anything high volume that just got around to adding (still very limited) connection pooling. I'd tend to think anyone overly concerned with performance would use SQLAlchemy, if they use any ORM at all.
- mhurron 13y ago> I'd tend to think anyone overly concerned with performance would use SQLAlchemy, if they use any ORM at all. Or they did connection pooling outside the development framework.
- collyw 13y agoright tool for the job. Djangoś ORM is great for simple stuff. And it works with the admin interface (which is worth a lot). If You need something complex enough, use raw SQL. The admin was too much to give up to swap the ORM to SQLAlchemy for me.
- andybak 13y agoYay. Major usability wart fixed: "ModelAdmin now preserves filters on the list view after creating, editing or deleting an object."
- paganel 13y agoI was always opening an object link in a new tab and then going back and hitting refresh in the main tab with the admin listing. Guess I won't have to do that anymore.
- daGrevis 13y agoIt's a small change yet I'm really happy with it. > BooleanField no longer defaults to False It caused quite a few headaches. Boolean can't have default.
- mhurron 13y ago> Boolean can't have default. I don't see the problem.
- codygman 13y agoWarning: default was False previously so this example is backwards Think about this code: class Missile(models.Model): # we can only attack short countries target = models.CharField(max_length=7) should_launch = models.BooleanField() def launch(self): """ pass launches the missile """ pass You recently added a new missile: # add new missile in case we have to attack Merica # it won't be launched until we set should_launch to True Missile.objects.create(target="Merica") Then you have a view: /missile/launch_missiles with the code: for missile in Missile.objects.filter(should_launch=True): missile.launch() You'll have the unexpected behavior of launching that missile you just added. With the new behavior your missile wouldn't be launched until you told it to. Basically this update has everything to do with the missile above failing this conditional: missile.should_launch is True Since 'None is not True and None is not False', it is a sensible default for Booleans.
- mhurron 13y agoTwo problems here: One not only is the example backwards, but given the previous behavior, the correct thing would have occurred. This is a complete nitpick but whatever. More importantly, this shows a lack of understanding about the framework being used, not an issue with the framework. The example has a programmer basically assuming the default is False when it was True, or more correctly that the default was not True. That is an issue with the programmer (and testing) not with the framework, unless it was undocumented. Django is documented quite well. The programmer here assumed something worked one way that was clearly documented to work the other. Booleans defaulting to False is not unusual, but not universal either. Django has chosen to go the path of explicitness, which is a fine choice to make, as opposed to defaulting to False which is often considered to be a safe choice. I don't see a problem with not assigning a default, but I also don't see a problem with the default being False. Defaulting to NULL could cause other problems, at least for the programmer above who didn't read documentation and worked on assumption.
- adamlj 13y agoI really need this update! Other than the good stuff already mentioned, The DecimalField finally supports a comma as the separator.
- eliben 13y agoIs it only me or it's not easy to discover what's new / changed / release notes from this page? Is there a secret link I'm missing?
- pydanny 13y agoSee https://www.djangoproject.com/weblog/2013/nov/06/django-16-released/ https://www.djangoproject.com/weblog/2013/nov/06/django-16-r...
- ubernostrum 13y agoThe person who posted this apparently saw the version-bump commits and jumped the gun, posting a link to just our download page before we even had the release announcement out. The announcement and release notes both have the information you want: https://www.djangoproject.com/weblog/2013/nov/06/django-16-released/ https://www.djangoproject.com/weblog/2013/nov/06/django-16-r... https://docs.djangoproject.com/en/1.6/releases/1.6/ https://docs.djangoproject.com/en/1.6/releases/1.6/
- Siecje 13y agohttps://dashboard.djangoproject.com/ https://dashboard.djangoproject.com/
- ubernostrum 13y agoLooks like somebody jumped the gun when they saw the commits and uploads happening; the official release announcement went up only a few minutes ago, and is here: https://www.djangoproject.com/weblog/2013/nov/06/django-16-released/ https://www.djangoproject.com/weblog/2013/nov/06/django-16-r... The release notes are here: https://docs.djangoproject.com/en/1.6/releases/1.6/ https://docs.djangoproject.com/en/1.6/releases/1.6/ Also: if you downloaded the package in the period between the parent link going up, and now, you might want to grab it again. The first roll of the 1.6 package (which wasn't announced, so we could do final checks first) failed to update our trove classifier, so the package was regenerated, which changed its signature and checksums.
- illumen 13y agoSeems like a new release should be done? Isn't that what RC and pre releases are for? Was the release uploaded to pypi or a download page? If so, that's released IMHO. eg, debian, various news outlets, and others auto scan download pages for new releases.
- ubernostrum 13y agoWell, what we do is generate everything, then share it privately and quickly amongst the core team for final review before flipping switches and making things public. One actually important part of this is verifying things like "the package I download from what will become the public release URL has checksums that match what's in the checksum file", so it does have to actually go up on our server for that. And if we catch a minor packaging error at this point, it's easy enough to fix on the spot without having to do an entire new release. Except in this case somebody got really eager, saw the release process starting, and posted a link to our downloads page (and I'm not entirely certain if it would have been possible to get the incorrect package from it), rather than waiting for and linking to the release announcement once we'd vetted and made everything public.
- philippbosch 13y agoThat "somebody" would be me then. Sorry for any inconvenience this may have caused. I saw "Latest Release: 1.6" on the djangoproject.com home page, checked if it was on PyPI already (it was), did a "pip install Django" and got 1.6. These together to me seemed to be a pretty good sign that 1.6 was released. Will wait for the official release announcement next time. Sorry again.
- anderspetersson 13y agoThanks for another great release! Also big thumbs up for a shorter release cycle than usual.
- craigkerstiens 13y agoThe persistent connections that now exist within Django should give a quite but great performance boost for the vast majority of Django applications, which are not already running a connection pooler (http://www.craigkerstiens.com/2013/03/07/Fixing-django-db-connections/ http://www.craigkerstiens.com/2013/03/07/Fixing-django-db-co...). This alone can be reason enough to upgrade in addition to all the other improvements.
- euroclydon 13y agoIf you were starting a new project today, would you use development version 1.7 in order to get Django Migrations instead of using South?
- voorloopnul 13y agoHard to answer, django 1.7 will take at least 9 months before become stable. You have(at minimum) to consider the calendar of your project.
- wiremine 13y agoI would recommend using 1.6 and South for now. 1.7 is at least nine months away, and who knows where the API will go in that time. You're probably better off developing a stable version of your project using 1.6/South, and then refactoring when 1.7 lands.
- acdha 13y agoNo: 1.7 is not stable and it's not like the current migration situation with South is a particularly large pain-point. What I'd do is use South now and essentially rebase when you upgrade to 1.7 – ensure that your servers are current with South, remove it and start over with 1.7's built-in migrations.
- njharman 13y ago1.7 It is not hard to keep up with changes. And it is easier to do them incrementally than have big jump which you never find time to do and end up lagging versions and huge technical debt. Once your project is deployed then think about sticking with specific version. Development should be on the bleeding edge!
- christopherryan 13y agoGOSPEL ARTIST POSES NUDE! Evon Latrail is the author of a children's book "When Mommy Went to Heaven". She wrote/recorded a few songs; "Lord Bless My Enemies" and "It Is Time" happens to be two of the titles. She even has a song entitled, "Can't You See (Abortion Is Murder). She went Pro-life after having a abortion! Really???? Now here is a photo of her posing in chocolate as a "Swamp Girl". The word Hypocrite is floating around somewhere. This story has made front page news in the local paper. How can this so called "Gospel Artist" be a role model if she's posing news? For more on this story.....Go to Google or YouTube and search, Evon Latrail. I seen the picture on Google!
- Walkman 13y agoA lot of small but very nice improvements, yay! https://docs.djangoproject.com/en/1.6/releases/1.6/#minor-features https://docs.djangoproject.com/en/1.6/releases/1.6/#minor-fe...
- d0m 13y agoFor those who works with designers or html people who don't use the command line, how do you collaborate with them with Django? For me it's a perpetual issue to get them up and running, commit/push with git, etc etc. Is there an easier solution? Basically, I'd like them to get started and be able to tweak the templates and css as effortless as possible. It's kind of very hard to have people working directly in templates/css and others updating html/css and them diff the changes, integrate them, etc..
- phpnode 13y agoI don't use django, but one of the easiest ways to get designers and non technical folks working directly on projects is to run virtual machines with vagrant[0] and automate everything as much as possible. [0] http://vagrantup.com/ http://vagrantup.com/
- kkwok 13y agoAs someone with no experience with this, any resources you'd recommend on how to set this up?
- phpnode 13y agowell, it's mainly geared towards PHP but you might find https://puphpet.com/ https://puphpet.com/ useful to get a reasonably sane vagrant/puppet installation which you can then customize for django or whatever. You could just remove the php specific stuff from the generated configurations if you don't want it
- FilterJoe 13y agohttp://gettingstartedwithdjango.com/ http://gettingstartedwithdjango.com/ Doing the first 2 lessons will not only get your a vagrant powered VM up and running, it will also give you a good feel for normal use. And you'll also be learning Django.
- andybak 13y agoWe put together a vagrant script and a set of instructions specifically for front-end devs on Windows who might lack the bash-fu and Python skills needed to get a local setup. Happy to share if you ping me.
- jroseattle 13y agoDjango is one of my favorite open-source projects. I owe the project a lot. Years ago, when I was a Microsoft-only shill (yeah, I'll say it), I knew how to build almost anything as long as something from Microsoft was under the covers. I was proud of my abilities, and in spite of the anti-MS crowd, I stood up for my platform and was a good developer. In 2006, I had a short two-week break from my startup job, and my wife & kids were traveling to their grandparents' house at the same time. I had 336 consecutive hours to spend as I wanted, something I hadn't been able to do in many years. I decided I wanted to work on a little side project, something I could complete within those two weeks. I made a decision to break out of my comfort zone. I knew a little about Linux, nothing about Apache, zero about Python, and had never worked with Mysql. I came up with an idea for a simple little CRUD application, just a utility site. It was something I knew I could build in maybe two or three days using Microsoft tools. So, I searched around and found Django. I downloaded v0.9x (it was sometime in the summer, can't recall what it was specifically. I know it was pre-v1.) And I started from the beginning, purely a newb. It was a position I wasn't accustomed to, so I immediately felt a lack of boundaries and sense of control. But the Django documentation was really good, and I soon gained an understanding of everything I needed to learn -- Python, running Apache, configuring Django, wiring up Mysql. I stayed focused and in one week, I had written my ridiculously simple CRUD app. But the value I got out of it was how well the project pulled me in to becoming productive on a platform that I'd never used. Not only that, there was the help in the discussion groups from the community. It was a lot of fun, and I could recognize myself becoming a better developer. The biggest realization came when I compared my Django project to an equivalent built on Microsoft tools. It wasn't a comparison of one-week vs. two-days, but rather one-week coming from square 1. All this led me to rethink my thoughts around my Microsoft background. I didn't become a convert per se, but it made me realize there are so many other ways of solving problems and other systems on which to build applications. And, after feeling productive, it made it easier for me to explore other (non-Microsoft) technologies. The feeling of being productive in multiple environments was so empowering. I'm not sentimental about software, but the Django project is kind of that kid who can do no wrong in my eyes, due to my formative experience with it.
- EnderMB 13y agoI'm quite interested in your experiences with Django, as I'm somewhat in the same boat. I'm a .NET developer, and while I love C#, am a fan of strongly-typed languages, and am quite fond of the .NET framework I have a soft spot for Python and especially Django. Similarly, I had a few days and decided to go out of my comfort zone. A few days later I had written a blog script and had modified it to work with Google App Engine. Do you use Python/Django in a professional setting now? If so, how did you find the full-time conversion?
- jtchang 13y agoOne of the reasons I like Django so much is because of the community. This might seem rather meta but the comments in this thread are generally positive. Most Django users I know are well aware of its limitations and don't try to sugarcoat it if Django is not the right tool for the job. But overall I've found the community (and that of Python) pretty receptive.
- lowkeykiwi 13y agoWhat jobs is Django the right tool for?
- smaili 13y agoIt's amazing to see how far along Django has come. Anyone remember when Django first came out? Good times :)
- paganel 13y agoYeap, it was early 2006 for me, in the pre- 0.96 days. I came to Django from Zope, that seems so long ago.
- fletchowns 13y agoThe dedication to Malcolm Tredinnick was a very nice thing for the Django team to do. I didn't know of Malcolm or his passing before reading the release notes, but he seemed like a wonderful person who will be missed by many. Very sad that somebody like that is no longer with us. Reading his tweets I get the sense he was a really cool guy. Really nice piece about Malcolm from his former boss: https://plus.google.com/+errazudinishak/posts/6j6iAMhNfnb https://plus.google.com/+errazudinishak/posts/6j6iAMhNfnb Congrats to the Django team on releasing 1.6, I'm looking forward to upgrading soon!
- targusman 13y agoIsn't two scoops also dedicated to Malcolm Tredinnick?
- dmooray 13y agoNow that we have 1.6, what should we expect for 1.7?
- lunchbox 13y agoDumb question: What does it mean that autocommit is now turned on? I no longer have to call mymodel.save()? https://docs.djangoproject.com/en/dev/releases/1.6/#improved-transaction-management https://docs.djangoproject.com/en/dev/releases/1.6/#improved...
- magnusgraviti 13y ago1.7 release will be very interesting. Instead of South there will be migrations support. At DjangoCon EU Andrew Godwin told about his vision of it. i.e. if you have 200 migrations you'll be able to merge them into 1. Form fields will get extended support like input[type="email"] Django comments are now deprecated. Congratulations to everyone using Django!
- mukgupta 13y agoNo database migrations in 1.6 .Disappointed