Wednesday, September 18, 2013

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


Real Estate