Skip to content

Instantly share code, notes, and snippets.

@niklasfi
Created February 4, 2013 19:48
Show Gist options
  • Save niklasfi/4709112 to your computer and use it in GitHub Desktop.
Save niklasfi/4709112 to your computer and use it in GitHub Desktop.
Environment:
Request Method: GET
Request URL: https://www.fsmpi.rwth-aachen.de/lerngruppen/admin/frontend/offering/1/
Django Version: 1.4.2
Python Version: 2.6.6
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'django.contrib.admin',
'widget_tweaks',
'south',
'frontend')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "/usr/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in wrapper
366. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/lib/python2.6/dist-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.6/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
89. response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.6/dist-packages/django/contrib/admin/sites.py" in inner
196. return view(request, *args, **kwargs)
File "/usr/lib/python2.6/dist-packages/django/utils/decorators.py" in _wrapper
25. return bound_func(*args, **kwargs)
File "/usr/lib/python2.6/dist-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.6/dist-packages/django/utils/decorators.py" in bound_func
21. return func(self, *args2, **kwargs2)
File "/usr/lib/python2.6/dist-packages/django/db/transaction.py" in inner
209. return func(*args, **kwargs)
File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in change_view
1063. for FormSet, inline in zip(self.get_formsets(request, obj), inline_instances):
File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in get_formsets
507. yield inline.get_formset(request, obj)
File "/usr/lib/python2.6/dist-packages/django/contrib/contenttypes/generic.py" in get_formset
492. return generic_inlineformset_factory(self.model, **defaults)
File "/usr/lib/python2.6/dist-packages/django/contrib/contenttypes/generic.py" in generic_inlineformset_factory
439. ct_field = opts.get_field(ct_field)
File "/usr/lib/python2.6/dist-packages/django/db/models/options.py" in get_field
293. raise FieldDoesNotExist('%s has no field named %r' % (self.object_name, name))
Exception Type: FieldDoesNotExist at /admin/frontend/offering/1/
Exception Value: Reply has no field named 'content_type'
from django.contrib import admin
from django.contrib.contenttypes import generic
from frontend.models import *
admin.site.register(ModulTag)
admin.site.register(OrtTag)
admin.site.register(Reply)
admin.site.register(Notification)
class ReplyInline(generic.GenericTabularInline):
model = Reply
class OfferingAdmin(admin.ModelAdmin):
inlines = [
ReplyInline,
]
admin.site.register(Offering, OfferingAdmin)
from django.contrib.sessions.models import Session
admin.site.register(Session)
# -*- coding: utf-8 -*-
from django.db import models
from django.contrib.sessions.models import Session
from django.contrib.auth.models import User
# Create your models here.
class AbstractTag(models.Model):
text = models.CharField(max_length=60)
def __unicode__(self):
return u"#{text}".format(text=self.text)
class Meta:
abstract = True
ordering = ['text']
class ModulTag(AbstractTag):
pass
class OrtTag(AbstractTag):
pass
class Message(models.Model):
body = models.TextField()
creator = models.ForeignKey(User, blank=True, null=True)
creatorDisplayName = models.CharField(max_length=60)
created = models.DateTimeField(auto_now_add=True)
class Meta:
abstract = True
ordering = ['created']
def __unicode__(self):
return u"{name}: {body}".format(
name=self.creatorDisplayName,
body= self.body[:30] + u'…' if len(self.body) > 30 else self.body
)
class Offering(Message):
modulTag = models.ForeignKey(ModulTag)
ortTag = models.ForeignKey(OrtTag)
expiry = models.DateField()
closed = models.BooleanField(default=False)
def __unicode__(self):
return u"Offering: {super} ({count}) {modulTag} {ortTag}".format(
super=super(Offering, self).__unicode__(),
count=self.reply_set.count(),
modulTag=self.modulTag,
ortTag=self.ortTag
)
class Reply(Message):
offering = models.ForeignKey(Offering)
class Notification(models.Model):
email = models.EmailField()
offering = models.ForeignKey(User)
user = models.ForeignKey(Offering, blank=True, null=True)
def __unicode__(self):
return u'Notification mail: {mail}, offer: {offer}'.format(
mail = self.email,
offer = self.offering
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment