I'm having a strange problem with my site wherein a ModelForm doesn't appear to recognize that it has an attribute that it ought to. I should preface this by saying that I recently moved my codebase to a new server--everything had been working fine on the old server and I haven't made any changes to the code since then, so that seems like the only thing that could have changed, but I have no idea what the problem is.
In any case, here are the relevant bits of code: ========== article/forms.py: from models import Article from django import forms [snip] class AddArticleForm(forms.ModelForm): body = forms.CharField(widget=forms.Textarea(attrs={'rows': '25', 'cols': '80'})) slug = forms.CharField(max_length=25,required=False) class Meta: model = Article exclude = ('node_ptr','archetype','created','author','section') ========== article/models.py: from django.db import models from sake.node.models import Node from sake.misc import blurbify class Article(Node): body = models.TextField() blurb = property(lambda self: blurbify(self.body, 100)) def __str__(self): return self.title ========== node/models.py: from django.db import models from django.contrib.auth.models import User, Group import re from sake.misc import slugrepl from tagging.models import Tag # Create your models here. class Section(models.Model): section = models.CharField(max_length=50) keyword = models.CharField(max_length=15) sort_reverse = models.BooleanField() def __str__(self): return self.section def get_absolute_url(self): return ('sake.node.views.node_section_all', (), {'sect': self.keyword}) get_absolute_url = models.permalink(get_absolute_url) def save(self): #g = Group.objects.create(name=self.keyword) #g.save() super(Section,self).save() class Archetype(models.Model): classname = models.CharField(max_length=15) def __str__(self): return self.classname class Node(models.Model): author = models.ForeignKey(User) created = models.DateTimeField() published = models.BooleanField() promoted = models.BooleanField() section = models.ForeignKey(Section) archetype = models.ForeignKey(Archetype) title = models.CharField(max_length=255) slug = models.SlugField(max_length=25) comments_enabled = models.BooleanField() tag_list = models.CharField(max_length=255) def _get_tags(self): return Tag.objects.get_for_object(self) def _set_tags(self, tag_list): Tag.objects.update_tags(self, tag_list) tags = property(_get_tags, _set_tags) def _blurb(self): if self.archetype.classname is not "Node": return getattr(self, self.archetype.classname.lower()).blurb else: return u"Created by %s" % (self.author.username,) blurb = property(_blurb) def __str__(self): return self.title def get_absolute_url(self): return ('sake.node.views.node_detail', (), { 'sect': self.section.keyword, 'yr': self.created.year, 'mo': self.created.strftime('%m'), 'slg': self.slug}) get_absolute_url = models.permalink(get_absolute_url) def save(self): self.archetype = Archetype.objects.get(classname=type (self).__name__) if len(self.slug) == 0: self.slug = re.sub('\W', slugrepl, self.title.lower().strip())[: 25] super(Node,self).save() self.tags = self.tag_list ========== article/views.py: from forms import ArticleForm, AddArticleForm from django.shortcuts import render_to_response from datetime import datetime from sake.node.models import Section from sake.article.models import Article from django.core.paginator import Paginator from django.template import RequestContext from django.template.defaultfilters import slugify def add_article(request, sect): if request.user.is_authenticated(): if request.user.is_superuser or request.user.groups.filter (name=sect).count(): if request.method == 'POST': form = AddArticleForm(request.POST) if not form.slug: form.slug = slugify(form.title) if form.is_valid(): article = form.save(commit=False) article.author = request.user article.created = datetime.now() article.section = Section.objects.get(keyword=sect) article.save() return render_to_response('thanks.html', context_instance=RequestContext(request)) else: form = AddArticleForm() return render_to_response('article/add_article.html', {'form': form}, context_instance=RequestContext(request)) return render_to_response('needperms.html', context_instance=RequestContext(request)) ========== The error comes up in views.py from the add_article() method, the line "if not form.slug:" The error itself is: 'AddArticleForm' object has no attribute 'slug' This is pretty odd to me, since it seems clear to me from the declaration that AddArticleForm does have that attribute. Further, this used to work. I am in the HEAD revision of django as of a few minutes ago, and my Python version is 2.5.4. Actually, now that I think of it, I may have been using Python 2.4 on the old server. Could that be the problem? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---