2016-10-13 4 views
0

Это мой первый вопрос. Я работаю в VisualStudio, чтобы создать приложение django/python для smartshopping AI. Это также мое первое приложение для технологии python/django. У меня проблемы с urls.py и прочитал, что версии django не содержат URL-адреса. Я изменил свои шаблоны URL-адресов, чтобы отразить рекомендации в Интернете, и изменил мою страницу импорта url.urf.urls моего кода. Он все еще не работает. Пожалуйста помоги.VisualStudio django.conf.urls

Я следовал советам онлайн, чтобы получить здесь:

from datetime import datetime 
from django.conf.urls import url 
from app.forms import BootstrapAuthenticationForm 



# Uncomment the next lines to enable the admin: 
from django.conf.urls import include 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = [ 
    # Examples: 
    url(r'^$', 'app.views.home', name='home'), 
    url(r'^contact$', 'app.views.contact', name='contact'), 
    url(r'^about', 'app.views.about', name='about'), 
    url(r'^login/$', 
     'django.contrib.auth.views.login', 
     { 
      'template_name': 'app/login.html', 
      'authentication_form': BootstrapAuthenticationForm, 
      'extra_context': 
      { 
       'title':'Log in', 
       'year':datetime.now().year, 
      } 
     }, 
     name='login'), 
    url(r'^logout$', 
     'django.contrib.auth.views.logout', 
     { 
      'next_page': '/', 
     }, 
     name='logout'), 

    # Uncomment the admin/doc line below to enable admin documentation: 
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    # url(r'^admin/', include(admin.site.urls)), 
] 

Я хочу, чтобы легко исправить, чтобы не изменить все представления для добавления включает - они были автоматически сгенерированы с помощью Visual Studio. Я хочу, чтобы autogeneraton работать и просто добавить строку кода для ссылки на url.py

from django.shortcuts import render 
from django.http import HttpRequest 
from django.template import RequestContext 
from datetime import datetime 

def home(request): 
    """Renders the home page.""" 
    assert isinstance(request, HttpRequest) 
    return render(
     request, 
     'app/index.html', 
     context_instance = RequestContext(request, 
     { 
      'title':'Home Page', 
      'year':datetime.now().year, 
     }) 
    ) 

def contact(request): 
    """Renders the contact page.""" 
    assert isinstance(request, HttpRequest) 
    return render(
     request, 
     'app/contact.html', 
     context_instance = RequestContext(request, 
     { 
      'title':'Contact', 
      'message':'Your contact page.', 
      'year':datetime.now().year, 
     }) 
    ) 

def about(request): 
    """Renders the about page.""" 
    assert isinstance(request, HttpRequest) 
    return render(
     request, 
     'app/about.html', 
     context_instance = RequestContext(request, 
     { 
      'title':'About', 
      'message':'Your application description page.', 
      'year':datetime.now().year, 
     }) 
    ) 

на основе ответов, и переполнение стека ответа на подобный вопрос (Django URLs error: view must be a callable or a list/tuple in the case of include()) я попробовал этот подход (который до сих пор не работает).

from datetime import datetime 
from django.conf.urls import url 
from app.forms import BootstrapAuthenticationForm 
from django.contrib.auth import views as auth_views 
from SmartShopper import views as SmartShopper_views 



# Uncomment the next lines to enable the admin: 
# from django.conf.urls import include 
# from django.contrib import admin 
# admin.autodiscover() 

urlpatterns = [ 
    # Examples: 
    url(r'^$', SmartShopper_views.home, name='home'), 
    url(r'^contact$', SmartShopper_views.contact, name='contact'), 
    url(r'^about', SmartShopper_views.about, name='about'), 
    url(r'^login/$', 
     'django.contrib.auth.views.login', 
     { 
      'template_name': 'app/login.html', 
      'authentication_form': BootstrapAuthenticationForm, 
      'extra_context': 
      { 
       'title':'Log in', 
       'year':datetime.now().year, 
      } 
     }, 
     name='login'), 
    url(r'^logout$', 
     'django.contrib.auth.views.logout', 
     { 
      'next_page': '/', 
     }, 
     name='logout'), 

    # Uncomment the admin/doc line below to enable admin documentation: 
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    # url(r'^admin/', include(admin.site.urls)), 

[что мое решение содержит - Иду из asp.net MVC фона и Джанго немного отличается своей структурой типа MVC еще привыкает к нему, просто помочь мне сделать thisthing бежать! HELPPP пожалуйста. спасибо 1

+0

Не могли бы вы пройти мимо соответствующего кода, а не скриншота? Кроме того, пожалуйста, включите соответствующий раздел вашего файла views.py. – brianpck

+0

yep! позвольте мне выяснить, как это сделать быстро –

ответ

0

Вам не нужно изменять ваши мнения. Проблема все еще находится в вашем urls.py. Вместо того, чтобы ссылаться на, например, "app.views.home" как строку, вам нужно импортировать представление и напрямую обратиться к views.home.

+0

вы говорите мне взять код из строки «app.views.home» и изменить его на views.home. Можете ли вы показать мне код? Извините, я новый разработчик программного обеспечения, и это поможет, если бы вы были глупо ясны. –

+0

от даты и времени импорта DateTime из django.conf.urls импорта URL из app.forms импорта BootstrapAuthenticationForm # раскомментируйте следующие строки, чтобы позволить администратору: # от django.conf.urls импорта включают # от Джанго. вно импорт админ # admin.autodiscover() urlpatterns = [ # Примеры: URL (г '^ $', views.home, имя = 'дом'), –

+0

не работает. говорит, что мнения не определены. –

0

После получения дополнительной информации о рамках Джанго из этого YouTube урока я был в состоянии исправить мой код (https://www.youtube.com/watch?v=nAn1KpPlN2w&index=3&list=PL6gx4Cwl9DGBlmzzFcLgDhKTTfNLfX1IK#t=4.759461)

То, что я узнал, что каждое «приложение» является сегментом программы с соответствующими видами. Все, что мне нужно было сделать, это импортировать все виды из my_app или приложения или что-то еще, что вы вызываете в своем новом «приложении» в Django. Кроме того, небольшое изменение в urlpatterns от() до [] все, что я сделал, это изменить URL-адрес, чтобы вытащить из app_views, который я установил выше. Вот функциональный код. У меня есть «Ошибка сервера (500)», что я еще кое-что выясню, но да, пожалуйста, объясните еще кое-что для разработчиков, которые просто не знакомы с картой django. Visualstudio - хороший инструмент. используйте его для python. Если у вас есть какие-либо вопросы, я буду рад помочь новичкам. Вот мой функциональный код.

from datetime import datetime 
from django.conf.urls import url 
from app.forms import BootstrapAuthenticationForm 
from django.contrib.auth import views as auth_views 
from app import views as app_views 



# Uncomment the next lines to enable the admin: 
# from django.conf.urls import include 
# from django.contrib import admin 
# admin.autodiscover() 

urlpatterns = [ 
    # Examples: 
    url(r'^$', app_views.home, name='home'), 
    url(r'^contact$', app_views.contact, name='contact'), 
    url(r'^about', app_views.about, name='about'), 
    url(r'^login/$', 
     auth_views.login, 
     { 
      'template_name': 'app/login.html', 
      'authentication_form': BootstrapAuthenticationForm, 
      'extra_context': 
      { 
       'title':'Log in', 
       'year':datetime.now().year, 
      } 
     }, 
     name='login'), 
    url(r'^logout$', 
     auth_views.logout, 
     { 
      'next_page': '/', 
     }, 
     name='logout'), 

    # Uncomment the admin/doc line below to enable admin documentation: 
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    # url(r'^admin/', include(admin.site.urls)), 
]