Re: Need help in my Django code
hello ghenessa, first of all i'll recommend that use pastebin to share code since tabular spaces in python its relevand.
now, you want to do something like triggers on database but do it in Django Admin? (something like automatic saving TimeStamp of a creation moment of the registry or update ?)2013/9/18 ghenessa sabaldan <ghenessa@gmail.com>
I am really stuck in my code. I have this printing project I have created. I wanted that in my student profile class, it will automatically update the the total printout and the available printout after the user has inputted the corresponding value in the printout class. and also the report generation will be by computer lab rooms. this is done in the default administration of django. Im using by the way python 2.7, django 1.5.2, Eclipse Standard/SDK and mysql workbench 5.2.47 CE. thanks--
model.py
class Student_Profile(models.Model):
id_number = models.CharField(max_length= 60, unique = True)
first_name = models.CharField(max_length= 60)
middle_name = models.CharField(max_length= 60)
last_name = models.CharField(max_length= 60)
active = models.BooleanField()
date_created = models.DateTimeField('date created')
def my_property(self):
return self.last_name + ', ' + self.first_name + ' ' + self.middle_name
my_property.short_description = "Full name of the person"
name = property(my_property)
def __unicode__(self):
return u'%s, %s %s' % (self.last_name, self.first_name, self.middle_name)
class Semester(models.Model):
#I manually encode it to mysql workbenc
semester = models.CharField(max_length= 60)
def __unicode__(self):
return self.semester
class Student_Subject(models.Model):
Student_Profile = models.ForeignKey(Student_Profile)
subject_code = models.CharField(max_length= 60)
teacher = models.CharField(max_length= 60)
total_printout = models.PositiveSmallIntegerField(default=0)
available_printout = models.PositiveSmallIntegerField(default=50)
room = models.CharField(max_length= 60)
semester = models.ForeignKey(Semester)
school_year = models.CharField(max_length= 30)
date_joined = models.DateField()
def __unicode__(self):
return self.subject_code
class Room(models.Model):
#I manually encode it to mysql workbenc
room = models.CharField(max_length= 60)
def __unicode__(self):
return self.room
class Printout(models.Model):
Student_Name = models.ForeignKey(Student_Profile)
Subject = ChainedForeignKey(
Student_Subject,
chained_field="Student_Name",
chained_model_field="Student_Profile",
show_all=False,
auto_choose=True
)
room = models.ForeignKey(Room)
printout = models.PositiveSmallIntegerField(default=0)
created_by = models.ForeignKey(User, null=True, blank=True)
date_created = models.DateField()
time_created = models.TimeField()
admin.py
from django.contrib import admin
from models import Student_Profile, Student_Subject, Printout
class Student_SubjectInline(admin.TabularInline):
model = Student_Subject
extra = 1
class Student_ProfileAdmin(admin.ModelAdmin):
inlines = (Student_SubjectInline,)
search_fields = ['last_name', 'first_name', 'id_number']
list_display = ('name', 'id_number')
ordering = ('last_name', 'first_name', 'middle_name',)
pass
admin.site.register(Student_Profile, Student_ProfileAdmin)
from django.contrib.auth.models import User
class PrintoutAdmin(admin.ModelAdmin):
list_display = ('room', 'created_by', 'Student_Name', 'printout', 'Subject', 'date_created', 'time_created' )
#search_fields = ['room']
list_filter = ['room']
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'created_by':
kwargs['queryset'] = User.objects.filter(username=request.user.username)
return super(PrintoutAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
def get_readonly_fields(self, request, obj=None):
if obj is not None:
return self.readonly_fields + ('created_by',)
return self.readonly_fields
def add_view(self, request, form_url="", extra_context=None):
data = request.GET.copy()
data['created_by'] = request.user
request.GET = data
return super(PrintoutAdmin, self).add_view(request, form_url="", extra_context=extra_context)
pass
admin.site.register(Printout, PrintoutAdmin)
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
For more options, visit https://groups.google.com/groups/opt_out.
--
Rafael E. Ferrero
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
For more options, visit https://groups.google.com/groups/opt_out.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home