When I try to add new Attendee with a class based view I get the error
matriculation_attendee.event_id may not be NULL with this code:

class Event(models.Model):
    """ Model representing an event """
    place = models.ForeignKey(Place, blank=True, null=True)
    slug = AutoSlugField(populate_from=('company', 'name'))
    name = models.CharField(max_length=200)
    company = models.ForeignKey(Company)
    description = models.TextField(null=True, blank=True)
    start_date = models.DateField()
    end_date = models.DateField()
    status = models.CharField(max_length=200, null=False, blank=True)
    currency = models.CharField(max_length=4,
choices=currency_choices)
    payment_gateway = models.ForeignKey(PaymentGateway, blank=True,
null=True)

    def registered(self):
        return self.attendee_set.count()

    def active(self):
        return self.attendee_set.filter(is_active=True).count()

    def cancelled(self):
        return self.attendee_set.filter(is_active=False).count()

    def __unicode__(self):
        return self.name

    class Meta:
        ordering = ['name']

    def save(self, *args, **kwargs):
        if self.end_date < datetime.now().date():
            self.status = 'Closed'
        elif datetime.now().date() >= self.start_date:
            self.status = 'Onsite'
        else:
            self.status = 'Active'

        super(Event, self).save(*args, **kwargs)

class Attendee(CommonDataInfo):
    #TODO: Add prefix and suffix choices
    event = models.ForeignKey(Event)
    prefix = models.CharField(max_length=300, blank=True, null=True)
    first_name = models.CharField(max_length=300)
    last_name = models.CharField(max_length=300)
    suffix = models.CharField(max_length=300, blank=True, null=True)
    badge_name = models.CharField(max_length=300, blank=True,
null=True)
    birthdate = models.DateField(blank=True, null=True)
    reg_date = models.DateTimeField(default=datetime.now())
    email = models.CharField(max_length=300, blank=True, null=True)
    gender = models.CharField(max_length=1, choices=gender_choices,
blank=True,
            null=True)
    location = models.ForeignKey(Place, blank=True, null=True)

    def __unicode__(self):
        return "%s %s" % (self.first_name, self.last_name)

    class Meta:
        ordering = ['last_name', 'first_name', 'is_active']


class EventContextMixIn(object):
    def get_context_data(self, **kwargs):
            event = get_object_or_404(Event,
slug=self.kwargs['event_id'])
            # Call the base implementation first to get a context
            context = super(EventContextMixIn,
self).get_context_data(**kwargs)
            context['event'] = event
            return context

    def get_form_kwargs(self, **kwargs):
        context = self.get_context_data()
        kwargs = super(EventContextMixIn,
self).get_form_kwargs(**kwargs)
        kwargs['initial']['event'] = context['event']
        return kwargs


class EventCreateView(EventContextMixIn, CreateView):
    pass


class EventUpdateView(EventContextMixIn, UpdateView):
    pass


class EventListView(EventContextMixIn, ListView):
    context_object_name = "model_list"


class EventDetailView(EventContextMixIn, DetailView):
    context_object_name = 'model'


url(r'^events/(?P<event_id>[-\w]+)/attendees/add/$',
            EventCreateView.as_view(form_class=AttendeeForm,
            template_name='matriculation/attendee_update.html'),
                name='matriculation_attendees_add'),


Am I using this wrong?  I'm basically trying to set this up so I the
url defines the event and then I can create models for the specific
event.

-- 
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.

Reply via email to