2016-04-06 21 views
1

Bir profilleme sistemi uygulamaya çalışıyorum, böylece kullanıcı oturum açtığında, öğrenci öğrenci modelinden bilgi alır ve çeker ve onu ana sayfaya ve muhtemelen her birine döndürür sistem içindeki sayfa.Python metodu invovasyonu, eksik parametre

profile() missing 1 required positional argument: 'username'

urls.py

# student urls.py 
    # Import urls and patterns aswell as student views 
    from django.conf.urls import patterns, url 
    from student import views 

    urlpatterns = patterns('', 
    url(r'^(?P<username>[a-zA-Z0-9]+)$', views.index, name='index'), 
    url(r'^$', views.profile, name='profile')) 

Models.py

: Aynı zamanda umarım

alıyorum .... URL'nin sonuna bu hatayı öğrenci kullanıcı adı ekler
# student models.py 
    # Import the models db and validators 
    # Also import user information for log in identification 
    from django.db import models 
    from django.core.validators import * 
    from django.contrib.auth.models import User 

    # Specify attributes for the student database 
    class student(models.Model): 
    # Specify choices for years, gender and degree type 
    YEARS = (
    ('1', '1st'), 
    ('2', '2nd'), 
    ('3', '3rd'), 
    ) 
    GENDER = (
    ('M', 'Male'), 
    ('F', 'Female'), 
    ) 
    DEGREE = (
    ('IT', 'Information Technology'), 
    ('CS', 'Computer Science'), 
    ) 

    # Attributes for the student model specified here 
    user = models.OneToOneField(User) 
    student_ID = models.CharField(unique=True, max_length=9, validators=[RegexValidator(regex='^[0-9]{9,9}$', message='Must be 9 unique numbers', code='nomatch')]) 
    first_name = models.CharField(max_length=128) 
    middle_name = models.CharField(max_length=128) 
    last_name = models.CharField(max_length=128) 
    gender = models.CharField(max_length=1, choices=GENDER) 
    year = models.CharField(max_length=1, choices=YEARS) 
    degree = models.CharField(max_length=2, choices=DEGREE) 
    photo = models.ImageField(upload_to="profile_pictures", null=True, blank=True) 

    def __str__(self): 
      return self.student_ID 

Views.py

# student views.py 
    # Import rendering and httpresponse 
    # Also import student model 
    from django.shortcuts import render 
    from django.http import HttpResponse 
    from student.models import student 
    from extra_curricular.models import extra_curricular 
    from module.models import module 
    from skill.models import skill 
    from django.contrib.auth.models import User 

    # Information box displayed on each page 
    def index(request, username): 
     user = User.objects.get(username=username) 
     person = student.objects.get(user=user) 
     return render(request, 'student/home.html', {"person":person}) 

    #Profile page information 
    def profile(request, username): 
     user = User.objects.get(username=username) 
     person = student.objects.get(user=user) 
     experience = extra_curricular.objects.get(user=user) 
     module = module.objects.get(user=user) 
     skill = skill.objects.get(user=user) 
     return render(request, 'student/profile.html', {"person":person}, {"experience":experience}, {"module":module}, {"skill":skill}) 

Home.html

 {% block content %} 
    <div class = "StudentInfoMain"> 


    </div> 
    <div id="Options"> 
     <ul> 
      <li><a href="/student/">Home</a></li> 
      <li><a href="/extra_curricular/add_extra_curricular/">Add Information</a></li> 
      <li><a href="#">View User Profile</a></li> 
      <li><a href="#">Checklist</a></li> 
      <li><a href="/skill/add_skill/">My Skills</a></li> 
      <li><a href="/alumni/Find_Alumni/">Contact Alumni</a></li> 
     </ul> 
    </div> 
    <div class = "Homebanner"> 
     <p>{{ user.username }}</p> 
     <p>{{ person.student_ID }}</p> 
     <p>{{ person.first_name}}</p> 
     <p>{{ person.last_name }}</p> 
     <p>{{ person.year }}</p> 
     <p>{{ person.degree }}</p> 

    </div> 
    <div id = "Homebody"> 
    <p>Hello {{person.first_name}</p> 
    <p>Welcome to your E-Profile</p> 
    <br> 
    <p>This application is intended as an aid to you during your employment endeavours.</p> 
    <p>It can be used during the process of building a curriculum vitae</p> 
    <p>You may add information of experiences you have had during your educational career</p> 
    <br> 
    <p>For any further information: </p> 
    <br> 


    </div> 


    <footer> 

    </footer> 
    {% endblock %} 

cevap

1
def profile(request, username):  

views.profile sen geçmemiş isteğiyle birlikte ekstra bir argüman alır.

url(r'^$', views.profile, name='profile') 
+0

Üzgünüm, bu konuda en iyisiyim. Bu tartışmayı nereye aktaracağım? –

0

Sizin profile görünümü bir username bağımsız değişken gerektirir ama URL yapınızı tanımlamak etmez.

url(r'^profile/(?P<username>[\w\d]+)/$', views.profile, name='profile')) 

gibi bir şeye başında profile bölümünü hattını

url(r'^$', views.profile, name='profile')) 

değiştirme senin index URL'den ayırt eklenir.

+0

Yardımlarınız için teşekkürler. Şu anda bir sayfa bulunamadı hata alıyorum ve emin olmak için bir şey url ile kullanıcı adı eklemek için eminim –

+0

Ne ile test ettiğiniz URL nedir? Kullanıcı adını nasıl geçersiniz? – Selcuk

+0

Url ile test ediliyor: url (r '^ (? P [a-zA-Z0-9] +)/$', views.index, name = 'index') –

İlgili konular