From 11a4288a082b41c370e652909b52026d285cd584 Mon Sep 17 00:00:00 2001 From: Robert Wittams Date: Tue, 15 Nov 2005 15:10:11 +0000 Subject: [PATCH] Fixed auto_now_add weird editable behaviour. git-svn-id: http://code.djangoproject.com/svn/django/branches/new-admin@1244 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/locale/de/LC_MESSAGES/django.mo | Bin 25484 -> 17285 bytes django/conf/locale/sr/LC_MESSAGES/django.mo | Bin 17028 -> 12160 bytes .../contrib/admin/templatetags/admin_list.py | 1 + django/core/formfields.py | 4 ++-- django/core/meta/fields.py | 17 ++++++++++------- django/core/template/__init__.py | 1 - 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/django/conf/locale/de/LC_MESSAGES/django.mo b/django/conf/locale/de/LC_MESSAGES/django.mo index 19a3206ac28130d3bf648037f6c2b2b7eeb8ca26..b4cec0fc013242a42bebb60c5fc971da2ddbf590 100644 GIT binary patch delta 14 VcmeA<&e+<{xPjGfGf!LtD*!3T1or>{ delta 8008 zcmbW6%WmA*5r#QHW-~yLEHb+UIb%R0DUe!50%ronmq;VomdElqmOOU68L-u-*>sbK z4PMma-Vj*?*<_~|36LiUFhCx|8$E+pTI8!bB)eOd1t$iq=H;+hr!N0rRs7rEKl#Uh zKKbXTcOM4(u`|bEWcYby~izab(T&XOB%>lx7t3@Ttv{&_!i0*cq2`=7Lw%@FKDGCgVr0)< zjm$FmCQH+>u#+&y@r1`?g20;7jQ9#i7&U06O=HUgqb%XI+dSr68%%{RN2*OHL&Cb z+|Y|VgES^2$~=^`ED8)_xtH2RVtX7qOuzRUA7th`n@_`}WZUhPqc^xVCAYilSv{H9 z1Q9RP_k|>(0)T>q5frHU7j|@2)1Oxyhi&vIcHW0VdA7A7%iG$%qu2=~MJU`kzDnpN*mmh7xu@HaZ&Nw9o@|4Ao z__uj@xOseh{VVmkV$)O@R-zZr5Hxc^^`fMsqwT}P>*d)+!*@#;%;H*|oyJ%!sOhd+ z=-1UCzvwmB$Xus|nA{tBHWhawdh>U`?S1w8Kj;qi@T=}^%TBoB*_);o!+hjpbKgD` zj?!Rtq~)N>Nf5;`^1jSLKSJzPJRE|V^BDG_BOtS|bYIqPv^FzK=AE0Z7u>gCVJ@sI zVftN0V!&~`HZCTyP0s#pKEL%sP&kgZ0mGc|l#RiUN-$LcHuCJ2A>=U{hH0Pt=@-AO zU!bu-MVCW9`-E7N1lJVhhMC6sz^o3Fu$=JbVryWBVU?7tnk59VBku-me|kPj$dmiF zuYd9?%%L>fvahge3+N`ShC+pQzI{E-Pcy*yf8@plHaO*M} zblz7Bpf(5q|Fc0}-HDP{i$$ERY+dM5BLJ zdS%a6rLfF{yaLRc9~V3%&z!>a?a)vP4e#98ns_1{d=HG-a_h$37=nIUxAfTU@Ag)B z_g?Uzqt*ZeLzM?lI|Mu^5)7s9SMMok%7z|>V_vH+YYQGiR7g=Vn!u!3@CA{29IMxY z;f0TjCWx#j2+FRmikVe}9>q%NDw`xKF|m<^m!}(v^wBxtqGA{5Bdmlzz}aRYXiGc@ zEL*Hg#MBabQkr=SI?ro8OzdXLtIyktM~Xx(Gv-$$m#o7)n+JQrL5WvDZ*j+?kTBp7p-``OmbmnlCu};>$0!Kf2US z$!2Xn%;+(4X)cJ7#sotcq70sp>`%WvI@VUIDWCLWm`tQxEW2G_+H_ZHJ+m=VrC+Hn z-3Vnop(t+g@Z3=Yp}A0;x21lI?dlFOzbKnTfF>!~-X!fwzp=+<60BQcmR8g!W8fa} zE;|a?4tB{4?q;!jX25HjlU`6@A;)CV=n+*94;zasvRPvL|k75$Qj#=#OP#Y~Na^y|2$oLDYuY z$621ok*0n33UKnncZvVDZYa#^O0n88U;DgfNZVh}$wStW^B<~G7djekP1AY)Hn+eA zf%EI%cfA;TZ^~o-*>0|!N>eHzGZ0@X z7(oP5I7wfj3GHucGm=2{T7JQ~!1)5w%AN}??k-Ddz1cZ(uh9NsWv#HukZ|j?GJB{Z zofMIH8YY!pr((P!bdgl+%;n%3QN*5a%I2~ZA}{BG8bs?H_RTN2;%5+1ejyM60-(YH zh0Y=*)+nju7J@A$YD1z7O{P|aT2y1y1vIKe0syaRQWy&*ZbLEnwFons1SrzHpU$v4buCp#b1Z$S)Ei5MH z>)S9V&LC|@V1;?Y170^B+ORdL%elEC^RwLicp!9%D`nTstt)bGhnv#X($mn)xIY3j zYlE;1*8v*|EFpuly^U1?LHHr3fE5}-pW8OQyLRj5&Gp+`94*~jIx)H^_zqO}6}_Uw4ULI*3bT(a1uKmZEwgl9 zerZ!N!lG%Fgt;MNs}yHSE5+E%n^)&(Y$$<%Fw}Z*G--xm%|KvmC56}ev6z&M11GU? zRE|i=X32Uj1*b6W^5R=JyA?1jEui@QWCWJzPGwFd`wYHAA);|FbYqGCx0+^MsXqzP z-KiFbF*Q9a(YK#dj50=*qOezA7U5@_m7_MbMj71^JK7MqFX*`nv(pS}*^$g_*$gJu zvY9KFM!iy?Hn8LrEqat%T2ny}eTt;B$9F!jSJswBr!qIy1X`>Oe0aB`+>d&qoBU#* z!t5tBIIh$YlzA;hLt7NqGSQKI?FAntcV0_=iv&D2<@ zfHL7;S*!8{n^Fld9Uy)LA%{Ah<=|_HVpnb+znNIcwG)3{a!ShiS)xiI3iIbGJ{cd!OutX#L2a{-e{wfY21~1lmD35lG%Y^m{6@RJtIHzqQ=gTRYpavo z(#A~dRZoMfOv+?l(ASy?1sSDcvG)a$tQbbXcfmBPw0I0xR%zjLMoNNto12Qt-!h&b zm$ZMExK4!2w5%rgW!|QJR5K(L@bXson^o-B(M8(?$qJ!tMu+oH8(p#1u#Seiw0TXH z=1m}@QnJ9~;i;{4+{q%DD(HZRcofiXsY`gU-~$4i?uSe;`*uVN;j~5WnFS2cZ3vSB zmqkg54Tbaq9Y&=(;%UnfY=@nZ2`J<>pJ2j)_kkD{_DmWFV%G zHC-C7mqcBvtu!pUx9I9CMb+=i@=4MbR!v{6rfxQ(f@V}fDpreonH>p+HOqX|E3u8$ zt3Ni3zVJn+r{AM$DOODSjsdvTX2f36e1tO>bgDit7N+&QM(T)e!s9b!p`(`6m`#Zi zJ~JUp%oQhQPim{n6|GF3A z!0A+(84B+g(%v?!TlN&>EVc>?p_9>;2TO^#7quYQ!dC$q*^=+wfVMBQj>TYCFZ+a& zba|R#jamDNNdlyCLQ`vd(Fon`hA|tRaB`awzf`zZt#{69$9Se77oLA5|7 zdX-Gd33(Y61*8qc#x;W+Iep$c!eTs3y{jJ_)}-8K=tlQCpChdYfCAqb`&K^Yl=I0x z11r)<=0%APpp@x#NK0t~+{vA0^5f}!LvwD-co9gDXSErU;9+(QVl&{&v$yj%`(fNw zv$!W1PFy%2|A37$%@GvhQxrM90fI^bNHr*VVh;CiAuw`bN&M3QG?>&KNCe3=!Ouc9 uo)%}+P1$Bv|FqhI+}v;NQ;l&t+I@I@_;{fkYe?Z!X`8nH^^?1Q{q(>1BTNO>i delta 4796 zcma)AO>Z2>5uE_>CC30xatM$P0fM^*x%9=C1tCGw+9o9~xgjMX@c)(IQ)&ns(OD#g)gPuEf`$jF7tX%IcJMopa+Tg`TltTp{=OE_Ub%Bz@7fNYYaIqIMCtS@J zrN;x(&>#=EL5R5&R+U`q-M(RT8XI~2qr<&%W7yzirHr{kr2=TMK2Mc(rJy)h1;A*? zYEz{;7qQG7qLWyFW|UAd*K3PH*);b(4tt`JD>Fb5z$#F@@LyF9cU#mtOJpGj(bs!9 zsSGxatY{cbkaDDBwL#Z0GI?iLG0!BI2v_vcMoA-DE(dtt;J>}`cyBZk@3g@!-N3KD zXE8X0^C#Tp-#`CNb7x)Qgk1CT?t9(s7l((#@%Zj}GvEfP)yc|*igM1jP9$=LOEYUB zAY$=s$x)kV#k+McHa9KzOpMBVxt4&)C*cnb)5GCxi2Ai{@cWmQd5 zturNCxDiVaSC#Msb>Sh0BBSU`R+2-^>h)3BPF&aS6dBo!oEQ*?}M zfmBrC>Cp%8JF+z@nK39A{<|y$6b)+~FKo8p4yz>e$yO$Pg63$}MF&{tXcFjtjYwlT zLmg+p1ydqYv{3`gx4FnAz?!dUbouHd8=DL@$s3V}j)OjBAKbaPy>F?U?ixU`&eS`z z?p;{jK&<`baKFeuXC4d%Dgkr`R8t`Ek)QrhA!6*$P74!y9Y9V)bzgk z^2`3gKEB?wuZ-`z%7{aXRmEaezUjp4j?8~&Wo_rCcb|Uc8!@6AO8+oPEaF2i@ z0iWjBR9N2a9t6(KKgvMbCxPdpphFKa^pJQ>IbXBX06C_fdmjFNIpZ`y@5YR?<|TKJ zZpr~PJKgo5bC`WlMxCIwDv!>W3cBY^29*nKU8A^^{sr8eb84u#{Oj*}4LTDy0&q{M zQ(CYv#Z^M}g8}~F)GU1o8G{KfmfCj{l>Nsxp(AGsvp~Cu4X)-2jB_cYqIE$uK@Q?@ zG!KYcJ=d|~-X_shLjj?!dNN(Lcv@4vtQHV9fW^-}zz+D7a||RvGaHSOVLeGu6D7Y+ zKzOIMZi1Tftx-@}>C9P9C9qQ9*j`Fn%(anW1ZFJrXmYFCz>qr^)|SKl{hd|YUx60q z_zUu^)3#xTsfBuPplUp{!Qt!kedFGfwcnZYy1$`hvCp;i=t^?Abs1PI`OCclu+_jo! zxVzyfKgBd&6j&p{hpxnohF;yJ0f+cBI5CwAM1^x2x2HlUL0S*R&ORi2VXOU0l9^p_ z{3l^X;}Swudntg^;CI5tz2MMstM;jZ^l9gzwd7#bF8MT`Ki9(!-3@Ss3#)EA3aPd;FPTT&2wa3rh>x z7JUQp4Rl|qQ~rkoa8t%3D~|&{MT}9Tv%znljod?9z@EiF7Dy;lmXKKTF_qah%kk(d zaY5CExVb{pm11v?L(dI`+Z#eIJk7SR2hj^u1`oW^i-YhDLj%NBE{EN#S(qky`?3=s Wz8oJ9MCdE9>W2UM?-&34`TqfN6UT!9 diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py index 78eee4c85e..698607f44d 100644 --- a/django/contrib/admin/templatetags/admin_list.py +++ b/django/contrib/admin/templatetags/admin_list.py @@ -210,6 +210,7 @@ def items_for_result(cl, result): if first: # First column is a special case first = False url = cl.url_for_result(result) + result_id = getattr(result, pk) yield ('%s' % \ (row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %r); return false;"' % result_id or ''), result_repr)) else: diff --git a/django/core/formfields.py b/django/core/formfields.py index f242ed3415..2bfc50a9f4 100644 --- a/django/core/formfields.py +++ b/django/core/formfields.py @@ -109,6 +109,7 @@ class FormWrapper: def __getitem__(self, key): for field in self.manipulator.fields: + if field.field_name == key: data = field.extract_data(self.data) return FormFieldWrapper(field, data, self.error_dict.get(field.field_name, [])) @@ -117,8 +118,7 @@ class FormWrapper: for inline_collection in self._inline_collections: if inline_collection.name == key: return inline_collection - - raise KeyError + raise KeyError("Could not find Formfield or InlineObjectCollection named:%s" % key ) def fill_inline_collections(self): if not self._inline_collections: diff --git a/django/core/meta/fields.py b/django/core/meta/fields.py index 43a2acca05..b7525a47cb 100644 --- a/django/core/meta/fields.py +++ b/django/core/meta/fields.py @@ -402,6 +402,13 @@ class DateField(Field): return datetime.datetime.now() return value + # Needed because of horrible auto_now[_add] behaviour wrt. editable + def get_follow(self, override=None): + if override != None: + return override + else: + return self.editable or self.auto_now or self.auto_now_add + def get_db_prep_save(self, value): # Casts dates into string format for entry into database. if value is not None: @@ -860,9 +867,7 @@ class BoundFieldLine(object): for bound_field in self.bound_fields: yield bound_field - def __repr__(self): - return "%s:(%s)" % (self.__class__.__name__, self.bound_fields) - + def __len__(self): return len(self.bound_fields) @@ -881,7 +886,7 @@ class FieldLine(object): yield field def __len__(self): - return len(self.fields) + return len(self.fields) class BoundFieldSet(object): def __init__(self, field_set, field_mapping, original, bound_field_line_class=BoundFieldLine): @@ -889,9 +894,7 @@ class BoundFieldSet(object): self.classes = field_set.classes self.bound_field_lines = [ field_line.bind(field_mapping,original, bound_field_line_class) for field_line in field_set] - def __repr__(self): - return "%s:(%s,%s)" % (self.__class__.__name__, self.name, self.bound_field_lines) - + def __iter__(self): for bound_field_line in self.bound_field_lines: yield bound_field_line diff --git a/django/core/template/__init__.py b/django/core/template/__init__.py index e2bf98dd8b..e7ce2de8ba 100644 --- a/django/core/template/__init__.py +++ b/django/core/template/__init__.py @@ -826,7 +826,6 @@ class DebugNodeList(NodeList): e.source = node.source raise except Exception, e: - from traceback import extract_tb, format_list, format_exception_only from sys import exc_info t,v,tb = exc_info()