2015-10-20 2 views
0

enter image description hereЗаписи в Джанго панели администратора не кликабельны

Я делаю проект, основанный Джанго администратора, но из-за этой ошибки я не смог продолжить.

мой код

admin.py

from django.contrib import admin 
    from account.models import Account 
    from import_export import resources 
    from import_export.admin import ImportExportModelAdmin 


     class AccounttResource(resources.ModelResource): 
      class Meta: 
       model=Account 
       import_id_fields = ['cust_id'] 


     class AccountAdmin(ImportExportModelAdmin,admin.ModelAdmin): 

      resource_class = AccounttResource 
      list_display = ['cust_first_name',] 
      readonly_fields=('image_tag_thumb','image_tag','cust_id',) 


     admin.site.register(Account,AccountAdmin) 

models.py

from django.db import models 
    from datetime import date 
    from django.contrib import admin 
    from django.shortcuts import render ,redirect 
    from django.http import HttpResponse 
    from django.utils.safestring import mark_safe 
    from django.utils.translation import gettext as _ 
    from django.contrib.admin.widgets import AdminFileWidget 




# Create your models here. 
class Account(models.Model): 
    cust_id=models.CharField(max_length=50,primary_key=True) 
    cust_first_name=models.CharField(max_length=50) 
    cust_middle_name=models.CharField(max_length=50,blank=True, null=True) 
    cust_last_name=models.CharField(max_length=50,blank=True, null=True) 
    father_name=models.CharField(max_length=50) 
    village_name=models.CharField(max_length=50) 
    crusher_choices=(
     ('1','12X14'), 
     ('2','13X15'), 
     ('3','13X16'), 
     ('4','14X16'), 
     ('5','14X17'), 
     ('6','15X17'), 
     ('7','15X18'), 
     ('8','16X17'), 
     ('9','16X18'), 
     ('10','17X18'), 


     ) 
    size_of_crusher=models.CharField(max_length=1,choices=crusher_choices,blank=True, null=True) 
    bowl_choices=(
     ('1','62'), 
     ('2','68'), 
     ('3','72'), 
     ('4','74'), 


     ) 

    size_of_bowl=models.CharField(max_length=1,choices=bowl_choices,blank=True, null=True) 
    rent_fixed=models.IntegerField(default=0) 
    reffered_by=models.CharField(max_length=50,blank=True, null=True) 
    contact_no1=models.CharField(max_length=50,blank=True, null=True) 
    contact_no2=models.CharField(max_length=50,blank=True, null=True) 
    address=models.CharField(max_length=120) 
    assigned_technician=models.CharField(max_length=50,blank=True, null=True) 
    first_deposit=models.PositiveIntegerField(default=0) 
    date_of_rent=models.DateField(blank=True, null=True) 
    total_payment_received=models.IntegerField(default=0) 
    balance=models.PositiveIntegerField(default=0,blank=True, null=True) 
    # item_replaced= 
    technician_visit=models.DateField(blank=True, null=True) 
    technician_name=models.CharField(max_length=50,blank=True, null=True) 
    terms_and_condition=models.TextField(max_length=250,blank=True, null=True) 
    thumb_impression=models.ImageField(_('cust_thumb'), upload_to='photos/') 
    cust_pic=models.ImageField(_('cust_image'), upload_to='photos/') 




    def __str__(self): 
     return self.cust_first_name 


    def image_tag_thumb(self): 

     return u'<img src="%s" width=100 height=120 />' % (self.thumb_impression.url) 
    image_tag_thumb.short_description = 'Customer Image' 
    image_tag_thumb.allow_tags = True 

    def image_tag(self): 

     return u'<img src="%s" width=100 height=120 />' % (self.cust_pic.url) 
    image_tag.short_description = 'Image' 
    image_tag.allow_tags = True 
    def save(self): 
     a=int(self.total_payment_received) 
     b=int(self.rent_fixed) 
     self.balance=b-a 
     super(Account,self).save() 


     if(self.cust_id==None): 

      print "inside cust id loop" 
      queryset=Account.objects.all() 

      data=request.POST 

      temp=queryset.aggregate(Max('cust_id')) 
      print temp 
      temp=temp.get('cust_id__max') 
      print "temp>>",temp 

      cust_id="" 
      if not temp : 
       print"before" 
       cust_id="CUST0001" 
       print "cust_id=",cust_id 
      else: 
       print"after" 
       print "m=",temp 
       prefix=temp[0:4] 
       print "prefix",prefix 

       suffix=temp[4:] 
       print "suffix",suffix 

       int_suffix=int(suffix) 

       print "prefix=",prefix,"suffix=",suffix,"int_suffix",int_suffix 
       if int_suffix<9 : 
        suffix="000"+str(int_suffix+1) 
       elif int_suffix>=9 and int_suffix<99: 
        suffix="00"+str(int_suffix+1) 
       elif int_suffix>=99 and int_suffix<999: 
        suffix="0"+str(int_suffix+1) 
       elif int_suffix>=999 and int_suffix<9999: 
        suffix=""+str(int_suffix+1) 


       cust_id=prefix+suffix 
       print "cust_id=",cust_id 

      account=Account() 

      account.cust_id=cust_id 
      account.cust_first_name=data.get('cust_first_name') 
      account.cust=data.get('cust_address') 
      account.is_active=data.get('is_active',default=False) 

      if account.save(): 

       return Response(status=status.HTTP_201_CREATED) 
      else: 
       return Response(status=status.HTTP_400_BAD_REQUEST) 


     else: 
      pass 

     print "cust_id",self.cust_id 

теперь, когда я начать этот проект и добавить новый account.it сохраняется, но имя учетной записи не является clickable.and, если я снова создаю другую учетную запись, она заменяет последнее

ответ

1
class AccountAdmin(ImportExportModelAdmin, admin.ModelAdmin): 
    resource_class = AccounttResource 
    list_display = ['cust_first_name',] 
    list_display_links = ('cust_first_name',) 
    readonly_fields = ('image_tag_thumb', 'image_tag', 'cust_id',) 
+0

Я сделал это, но моя проблема не была решена. Помогите мне –

+0

cust_id = models.CharField (max_length = 50) – EchoUA

0

Вы не можете создать 2 учетных записей с идентичным первичным ключом (cust_id), поэтому при создании нового убедитесь, что вы вводите новый, непустой ключ.

Если вы не можете нажать эту запись, убедитесь, что у вас есть соответствующие разрешения, вы не переписываете has_change_permission тем, что не позволит вам отредактировать эту модель. Также убедитесь, что вы не устанавливаете list_display_links в None, пустой список или какое-либо поле, которое не находится в list_display или просто не существует в вашей модели. Вы можете попробовать указать list_display_links в список полей, которые будут ссылаться на редактирование формы.

+0

Я удалил класс AccountResource из admin, а также сохранил метод для cust id ... но проблема в том, что остается. Что я должен делать в своем коде. Где проблема в моем коде.iin admin.py или или в models.py –

+1

Основная проблема связана с вашей 'primary_key'. Вам действительно нужно отдельное поле для этого, без автоматического увеличения и без возможности редактировать его в своем администраторе? Если это поле пуст, администратор не может создать URL-адрес вашего объекта, и если вы попытаетесь создать другой объект с пустым идентификатором, он перезапишет существующий. – GwynBleidD

+0

спасибо ... он работает –

Смежные вопросы