Skip to content

Instantly share code, notes, and snippets.

@aesmail
Created September 29, 2011 10:17
Show Gist options
  • Save aesmail/1250458 to your computer and use it in GitHub Desktop.
Save aesmail/1250458 to your computer and use it in GitHub Desktop.
Some django sample code
class Item(models.Model):
category = models.ForeignKey(Category, related_name='items')
city = models.ForeignKey(City, verbose_name=u'المنطقة', related_name='items')
activation_code = models.CharField(max_length=64)
is_active = models.BooleanField(default=False)
is_deleted = models.BooleanField(default=False)
email = models.EmailField(u'البريد الإلكتروني')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
title = models.CharField(u'العنوان', max_length=200)
price = models.IntegerField(u'السعر', default=0)
condition = models.CharField(u'الحالة', max_length=1, choices=CONDITION_CHOICES, default='o')
bedrooms = models.IntegerField(u'غرف النوم', default=0)
bathrooms = models.IntegerField(u'الحمامات', default=0)
transmission = models.CharField(u'القير', max_length=1, choices=TRANSMISSION_CHOICES, default='n')
mileage = models.IntegerField(u'المسافة المقطوعة', default=0)
year = models.IntegerField(u'السنة', default=0)
pet = models.CharField(u'الفصيلة', max_length=1, choices=PET_CHOICES, default='o')
description = models.TextField(u'التفاصيل')
objects = ItemManager()
class Meta():
ordering = ('-created_at',)
def __unicode__(self):
return self.title
def get_absolute_url(self):
return reverse('item_url', args=[self.id])
def get_verification_url(self):
return Site.objects.get_current().domain + reverse('activation_url', args=[self.activation_code])
def get_edit_url(self):
return Site.objects.get_current().domain + reverse('edit_item_url', args=[self.id, self.activation_code])
###########################################
def new_item(request, category_slug):
category = Category.objects.get(slug=category_slug)
fields_list = category.show_fields.split(',')
item_form = ItemForm(fields_list)
image_forms = [ImageForm(prefix='image-%d' % i) for i in range(4)]
if request.method == 'POST':
item_form = ItemForm(fields_list, data=request.POST)
image_forms = [ImageForm(request.POST, request.FILES, prefix='image-%d' % i) for i in range(4)]
if item_form.is_valid():
item = item_form.save(commit=False)
item.category = category
item.save()
for image_form in image_forms:
if image_form.is_valid():
image = image_form.save(commit=False)
image.item = item
image.save()
return HttpResponseRedirect(reverse('item_added_url'))
return render_to_response('items/new_item.html', {
'category': category,
'item_form': item_form,
'image_forms': image_forms,
}, context_instance=RequestContext(request))
####################################################
def edit_item(request, item_id, code):
item = Item.objects.get(pk=item_id, activation_code=code, is_active=True)
fields_list = item.category.show_fields.split(',')
item_form = ItemForm(fields_list, new_item=False, instance=item)
if request.method == 'POST':
item_form = ItemForm(fields_list, new_item=False, data=request.POST, instance=item)
if item_form.is_valid():
item = item_form.save()
return HttpResponseRedirect(reverse('item_url', args=[item.id]))
return render_to_response('items/edit_item.html', {
'item_form': item_form,
'item': item,
}, context_instance=RequestContext(request))
###################################################
class Team(models.Model):
name = models.CharField(u'اسم الفريق', max_length=100, unique=True)
is_active = models.BooleanField(default=False)
is_paid = models.BooleanField(default=False)
level = models.FloatField(default=0.0)
is_available = models.BooleanField(default=False)
manager = models.OneToOneField(User)
created_at = models.DateTimeField(auto_now_add=True)
class Meta():
ordering = ('name',)
def __unicode__(self):
return self.name
##################################################
@login_required
def add_new(request):
if request.user.get_profile().team:
return HttpResponse('You already have or belong to a team')
team_form = NewTeamForm()
if request.method == 'POST':
team_form = NewTeamForm(request.POST)
if team_form.is_valid():
team = team_form.save(commit=False)
team.manager = request.user
team.save()
profile = request.user.get_profile()
profile.team = team
profile.save()
return HttpResponseRedirect(reverse('home_path'))
return render_to_response('teams/new.html', {
'team_form': team_form,
}, context_instance=RequestContext(request))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment