2017-01-28 10 views
3

У меня проблема: Когда я пытаюсь удалить участника из моей базы данных через шаблон, я получаю следующую ошибку:не удалось изменить: type object 'Member' не имеет атрибута '_default_manager, django 1.10

тип объекта «член» не имеет атрибута «_default_manager

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

GENDER_CHOICES = (
    ('M', 'Male'), 
    ('F', 'Female'), 
) 


class Member(models.Model): 
    """Model for a member""" 
    surname = models.CharField(max_length=255) 
    names = models.CharField(max_length=255) 
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES) 
    dob = models.DateField() 
    # anniversary = models.ForeignKey(Anniversary) 
    email = models.EmailField() 
    phone = PhoneNumberField(help_text='Please, use this format +3232') 
    address = models.CharField(max_length=255) 
    suburb = models.CharField(max_length=255, choices=Suburbs_list, default=Suburbs_list[0][0]) 
    province = models.CharField(max_length=255, choices=Provinces_List, default=Provinces_List[8][1]) 
    country = models.CharField(max_length=255, default='Unite Kingdom') 
    previous_church = models.CharField(max_length=255) 
    added_date = models.DateField(default=datetime.date.today) 

    def __str__(self): 
     return self.surname 

    class Meta: 
     ordering = ['-suburb', 'province'] 

И мой Удалить Вид:

class DeleteMember(LoginRequiredMixin, generic.DeleteView): 
""" 
This view will be responsible of deleting an member 
""" 
model = Member 
template_name = 'members/delete_member.html' 
success_url = reverse_lazy('website:home') 

и моя форма:

class MemberForm(forms.ModelForm): 
dob = forms.DateField(widget=extras.SelectDateWidget, label='Date of Birth') 
phone = forms.CharField(label='Phone Number', 
      widget=forms.TextInput(attrs={'placeholder': '+41524242424'})) 

class Meta: 
    model = Member 
    exclude = ['added_date'] 
    error_messages = { 
     'phone': { 
      'max_length': _("Please use this format +41524242424 ."), 
      } 
    } 

и мой Удалить URL:

url(r'^delete-member/(?P<pk>\d+)/delete/$', DeleteMember.as_view(), 
     name='delete_member'), 

и в шаблоне:

<a class="btn btn-danger btn-edit" role="button" href="{% url "website:delete_member" pk=member.id %}">Delete</a> 

И мой отслеживающий:

Internal Server Error: /delete-member/1/delete/ 
Traceback (most recent call last): 
    File "/project/lib/python3.5/site-packages/django/core/handlers/exception.py", line 39, in inner 
    response = get_response(request) 
    File "/project/lib/python3.5/site-packages/django/core/handlers/base.py", line 187, in _get_response 
    response = self.process_exception_by_middleware(e, request) 
    File "/project/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "/project/lib/python3.5/site-packages/django/views/generic/base.py", line 68, in view 
    return self.dispatch(request, *args, **kwargs) 
    File "/project/lib/python3.5/site-packages/django/contrib/auth/mixins.py", line 56, in dispatch 
    return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs) 
    File "/project/lib/python3.5/site-packages/django/views/generic/base.py", line 88, in dispatch 
    return handler(request, *args, **kwargs) 
    File "/project/lib/python3.5/site-packages/django/views/generic/detail.py", line 115, in get 
    self.object = self.get_object() 
    File "/project/lib/python3.5/site-packages/django/views/generic/detail.py", line 32, in get_object 
    queryset = self.get_queryset() 
    File "/project/lib/python3.5/site-packages/django/views/generic/detail.py", line 68, in get_queryset 
    return self.model._default_manager.all() 
AttributeError: type object 'Member' has no attribute '_default_manager' 

Я буду признателен за любую помощь.

+0

Можете ли вы поделиться трассой с ошибкой? – Wilfried

+0

@Wilfried предоставил трассировку сейчас – pussycat

+0

Возможно, проблема исходит от вас [LoginRequiredMixin] (https://docs.djangoproject.com/en/1.10/topics/auth/default/#the-loginrequired-mixin). Вам нужно определить некоторый атрибут, например 'login_url' и' redirect_field_name'. Вы можете попробовать без этого mixin, чтобы узнать, не возникла ли проблема из-за этого. – Wilfried

ответ

1

Я нашел проблему, по какой-то причине, так как я назвал свой член модели и мой член также, он был конфликтным. Поэтому я просто переименовал представление.

+0

Ты спасатель. Имел ту же самую проблему на 'Django == 2.0.2'. Обнаружили глубины Интернета, чтобы найти это. Спасибо кошке – Parousia