Re: Simple Search Feature

2018-02-24 Thread tango ward
thanks for the suggestions Ken. I just want to ask too if it's safe to
display the list of songs even if the textbox is empty?

On Sun, Feb 25, 2018 at 10:21 AM, Ken Whitesell 
wrote:

> One of the issues is here:
> if request.method == 'GET':
> song_name = request.GET.get('name', "Error")
> songs = self.model.objects.filter(name__icontains=song_name)
> else:
> songs = self.models.all()
> return render(request, self.template_name, {'songs': songs})
>
> When no parameter is passed, request.method is still "GET" - In fact, this
> method should only be called on a get method, making this test irrelevant.
>
> You _could_ change it to look something like this:
> song_name = request.GET.get('name', None)
> if song_name:
> songs = self.model.objects.filter(name__icontains=song_name)
> else:
> songs = self.models.all()
> return render(request, self.template_name, {'songs': songs})
>
> Hope this helps,
>  Ken
>
>
> On Saturday, February 24, 2018 at 8:18:25 PM UTC-5, tangoward15 wrote:
>>
>> Hi,
>>
>> I am playing around on adding a search feature to a website. I am
>> currently encountering a problem when the page should load a list of songs
>> and after typing in a song title in the search box:
>>
>>
>> views.py
>>
>> class SongListView(ListView):
>> model = SongOne
>> context_object_name = 'songs'
>> template_name = 'songs/song_list.html'
>>
>> def get(self, request, *args, **kwargs):
>>
>> if request.method == 'GET':
>> song_name = request.GET.get('name', "Error")
>> songs = self.model.objects.filter(name__icontains=song_name)
>> else:
>> songs = self.models.all()
>> return render(request, self.template_name, {'songs': songs})
>>
>> problem is when I click the search button with the text box empty, I am
>> getting the list of all the song (url: /songs/?name=) but if I just load
>> the page wihout clicking the submit button (url: /songs/), it doesn't give
>> me the list all the songs. The search box works if I type the correct song
>> name as it shows the song title.  Problem is the page should load all the
>> songs before I search a particular song.
>>
>> Any suggestions so I can enhance my code?
>>
>>
>> Thanks,
>> Jarvis
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/fee7baf6-7dbe-4a33-a281-f7c8600f73cc%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAA6wQLK03p7hofrCRAGYQsUxo4NuYddTN5e3rmmOdrUSV-uOUQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: Running polls tutorial, see the error message "The empty path didn't match any of these."

2018-02-24 Thread Dylan Reinhold
What you are seeing is correct.
That congratulations page is only displayed by django when you have no
url's defined other than admin. Once you add your first URL django gets out
of the way and does not show that splash screen.

The error is saying you do no have anything defined in your URLs as / (or
empty), The polls app is in /polls/ (http://localhost:8000/polls/). Which
at this point in the tutorial is correct.

Dylan

On Sat, Feb 24, 2018 at 3:09 PM, Chunjing Jia  wrote:

> Hi,
>
> I am running Django 2.0 tutorial01 for polls. I am seeing this error
> message
>
> Using the URLconf defined in mysite.urls, Django tried these URL
> patterns, in this order:
>
>1. polls/
>2. admin/
>
> The empty path didn't match any of these.
>
> Without adding polls, my code works fine, and I can see the rocket and
> congratulation page. But after adding polls, I always get this error
> message. Even if I use the example code that I found from github with the
> all the correct setting...
>
> Does this mean that my installation for Python3 and Django 2.0 may be
> problematic? What other possibles error may be here?
>
> Thanks a lot!
>
> Best,
> CJ
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/7663c42a-06fc-4fc5-9604-dd92143c7ab3%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAHtg44AEhg%3DH%3DGhG327gdZHY3%3D9mP5cj2rQ353Dy%3DPvuw8YySA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: Channels 2.0 - Exception when sending a message to client

2018-02-24 Thread Andrew Godwin
You are entirely right, Ken - the problem here is that "self.send()" on
consumers where their scope type is "channel" is not defined. I suspect we
could do with a better error message in this case rather than the one shown
here.

The confusion probably comes as this would sort have worked in Channels 1,
but in Channels 2, the only consumer that can send to a websocket is the
one that's attached to it. All anything else can do is send messages over
the channel layer to the websocket consumer to trigger _it_ to run code and
send something.

Andrew

On Sat, Feb 24, 2018 at 6:08 PM, Ken Whitesell 
wrote:

> I'm going to take a stab at this - with the warning that I'm extremely
> uncertain that I'm anywhere close to being correct, but I'm hoping that I'm
> at least close enough that it might give you some clues.
>
> So where I think the issue may be is that you're trying to do a
> "self.send" from a worker task, not from a websocket task. If you look at
> the docs for the "Worker and Background Tasks", you'll see that to send an
> event you call "self.channel_layer.send" with a first parameter of the
> channel to which you wish to send the message.
>
> Since this worker task isn't running in the context of a websocket
> consumer, it doesn't automatically know to which channel a response should
> be sent. (I _know_ that my wording there is imprecise and probably
> inaccurate, but I think I'm sufficiently close for casual conversation.)
>
> If you want the worker task to send a message back to a client, what _I_
> have done is create another method in my WebSocket consumer that takes a
> message and forwards it back out to the client. In thinking about it, I
> guess it may be possible that if I pass something (whatever that
> "something" might be) to the worker task, I might be able to send a message
> back out without going back through the consumer - again, that's a guess
> for something I haven't tried yet.
>
> Anyway, I hope this helps.
>
> Ken
>
>
> On Saturday, February 24, 2018 at 7:56:45 PM UTC-5,
> muha...@swordfish.co.za wrote:
>>
>> I'm still trying to find my way around channels 2.0, so I'm not sure if
>> my implementation is incorrect or if this is a valid issue. I'm going to
>> post as much info as possible in the hope that it will assist with finding
>> the problem.
>>
>> I have a single page app which opens a JS websocket connection - with
>> channels 1 I used to add a *session_key *to the querystring and that
>> used to handle the authentication.
>>
>> I see this is no longer the case, so I now have a custom middleware class
>> that sets the user object on the scope:
>>
>> from django.contrib.sessions.models import Session
>>
>> from users.models import User
>>
>>
>> class QueryAuthMiddleware:
>>
>> def __init__(self, inner):
>> # Store the ASGI application we were passed
>> self.inner = inner
>>
>> def __call__(self, scope):
>> # Look up user from query string (you should also do things like
>> # check it's a valid user ID, or if scope["user"] is already 
>> populated)
>> if scope.get("user", None) is None:
>> session_obj = 
>> Session.objects.get(session_key=scope["query_string"].decode("utf-8").split("=")[1])
>> session_decoded = session_obj.get_decoded()
>>
>> scope["user"] = 
>> User.objects.get(id=session_decoded.get("_auth_user_id"))
>>
>> # Return the inner application directly and let it run 
>> everything else
>> return self.inner(scope)
>>
>>
>>
>>
>> This is in turn added to my routing (channels.py):
>>
>> from django.conf.urls import url
>> from django.conf import settings
>> from channels.routing import ProtocolTypeRouter, URLRouter, ChannelNameRouter
>>
>> from notifications.consumer import TestWebsocketConsumer, TestConsumer
>> from notifications.middleware.query_auth_middleware import 
>> QueryAuthMiddleware
>>
>> ROOT_PATH = "" if settings.DEBUG else "/ws/"
>>
>>
>> application = ProtocolTypeRouter({
>>
>> "websocket": QueryAuthMiddleware(
>> URLRouter([
>> url(f"^{ROOT_PATH}(?P[-\w]+)/$", TestWebsocketConsumer),
>>
>> ])
>> ),
>>
>> "channel": ChannelNameRouter({
>>  "user-notifications": TestConsumer,
>> })
>>
>>
>> })
>>
>>
>>
>>
>>
>> Here's my *consumers.py*:
>>
>> from asgiref.sync import async_to_sync
>> from channels.consumer import SyncConsumer
>> from channels.generic.websocket import WebsocketConsumer
>>
>>
>> class TestWebsocketConsumer(WebsocketConsumer):
>> def websocket_connect(self, message):
>> 
>> async_to_sync(self.channel_layer.group_add)(str(self.scope["user"].id), 
>> "user-notifications")
>> self.connect()
>>
>>
>> class TestConsumer(SyncConsumer):
>> def notification_handler(self, message):
>>
>> self.send(
>> {
>>  "type": "websocket.send",
>>  "text": message["text"]
>> }
>> )
>>
>>
>>
>>
>>
>>
>> The idea of the 

Re: Simple Search Feature

2018-02-24 Thread Ken Whitesell
One of the issues is here:
if request.method == 'GET':
song_name = request.GET.get('name', "Error")
songs = self.model.objects.filter(name__icontains=song_name)
else:
songs = self.models.all()
return render(request, self.template_name, {'songs': songs})

When no parameter is passed, request.method is still "GET" - In fact, this 
method should only be called on a get method, making this test irrelevant.

You _could_ change it to look something like this:
song_name = request.GET.get('name', None)
if song_name:
songs = self.model.objects.filter(name__icontains=song_name)
else:
songs = self.models.all()
return render(request, self.template_name, {'songs': songs})

Hope this helps,
 Ken


On Saturday, February 24, 2018 at 8:18:25 PM UTC-5, tangoward15 wrote:
>
> Hi,
>
> I am playing around on adding a search feature to a website. I am 
> currently encountering a problem when the page should load a list of songs 
> and after typing in a song title in the search box:
>
>
> views.py
>
> class SongListView(ListView):
> model = SongOne 
> context_object_name = 'songs'
> template_name = 'songs/song_list.html'
>
> def get(self, request, *args, **kwargs):
>
> if request.method == 'GET':
> song_name = request.GET.get('name', "Error")
> songs = self.model.objects.filter(name__icontains=song_name)
> else:
> songs = self.models.all()
> return render(request, self.template_name, {'songs': songs})
>
> problem is when I click the search button with the text box empty, I am 
> getting the list of all the song (url: /songs/?name=) but if I just load 
> the page wihout clicking the submit button (url: /songs/), it doesn't give 
> me the list all the songs. The search box works if I type the correct song 
> name as it shows the song title.  Problem is the page should load all the 
> songs before I search a particular song.
>
> Any suggestions so I can enhance my code?
>
>
> Thanks,
> Jarvis
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/fee7baf6-7dbe-4a33-a281-f7c8600f73cc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Channels 2.0 - Exception when sending a message to client

2018-02-24 Thread Ken Whitesell
I'm going to take a stab at this - with the warning that I'm extremely 
uncertain that I'm anywhere close to being correct, but I'm hoping that I'm 
at least close enough that it might give you some clues.

So where I think the issue may be is that you're trying to do a "self.send" 
from a worker task, not from a websocket task. If you look at the docs for 
the "Worker and Background Tasks", you'll see that to send an event you 
call "self.channel_layer.send" with a first parameter of the channel to 
which you wish to send the message.

Since this worker task isn't running in the context of a websocket 
consumer, it doesn't automatically know to which channel a response should 
be sent. (I _know_ that my wording there is imprecise and probably 
inaccurate, but I think I'm sufficiently close for casual conversation.)

If you want the worker task to send a message back to a client, what _I_ 
have done is create another method in my WebSocket consumer that takes a 
message and forwards it back out to the client. In thinking about it, I 
guess it may be possible that if I pass something (whatever that 
"something" might be) to the worker task, I might be able to send a message 
back out without going back through the consumer - again, that's a guess 
for something I haven't tried yet.

Anyway, I hope this helps.

Ken

On Saturday, February 24, 2018 at 7:56:45 PM UTC-5, muha...@swordfish.co.za 
wrote:
>
> I'm still trying to find my way around channels 2.0, so I'm not sure if my 
> implementation is incorrect or if this is a valid issue. I'm going to post 
> as much info as possible in the hope that it will assist with finding the 
> problem.
>
> I have a single page app which opens a JS websocket connection - with 
> channels 1 I used to add a *session_key *to the querystring and that used 
> to handle the authentication.
>
> I see this is no longer the case, so I now have a custom middleware class 
> that sets the user object on the scope:
>
> from django.contrib.sessions.models import Session
>
> from users.models import User
>
>
> class QueryAuthMiddleware:
>
> def __init__(self, inner):
> # Store the ASGI application we were passed
> self.inner = inner
>
> def __call__(self, scope):
> # Look up user from query string (you should also do things like
> # check it's a valid user ID, or if scope["user"] is already 
> populated)
> if scope.get("user", None) is None:
> session_obj = 
> Session.objects.get(session_key=scope["query_string"].decode("utf-8").split("=")[1])
> session_decoded = session_obj.get_decoded()
>
> scope["user"] = 
> User.objects.get(id=session_decoded.get("_auth_user_id"))
>
> # Return the inner application directly and let it run everything 
> else
> return self.inner(scope)
>
>
>
>
> This is in turn added to my routing (channels.py):
>
> from django.conf.urls import url
> from django.conf import settings
> from channels.routing import ProtocolTypeRouter, URLRouter, ChannelNameRouter
>
> from notifications.consumer import TestWebsocketConsumer, TestConsumer
> from notifications.middleware.query_auth_middleware import QueryAuthMiddleware
>
> ROOT_PATH = "" if settings.DEBUG else "/ws/"
>
>
> application = ProtocolTypeRouter({
>
> "websocket": QueryAuthMiddleware(
> URLRouter([
> url(f"^{ROOT_PATH}(?P[-\w]+)/$", TestWebsocketConsumer),
>
> ])
> ),
>
> "channel": ChannelNameRouter({
>  "user-notifications": TestConsumer,
> })
>
>
> })
>
>
>
>
>
> Here's my *consumers.py*:
>
> from asgiref.sync import async_to_sync
> from channels.consumer import SyncConsumer
> from channels.generic.websocket import WebsocketConsumer
>
>
> class TestWebsocketConsumer(WebsocketConsumer):
> def websocket_connect(self, message):
> 
> async_to_sync(self.channel_layer.group_add)(str(self.scope["user"].id), 
> "user-notifications")
> self.connect()
>
>
> class TestConsumer(SyncConsumer):
> def notification_handler(self, message):
>
> self.send(
> {
>  "type": "websocket.send",
>  "text": message["text"]
> }
> )
>
>
>
>
>
>
> The idea of the app is that each user that logs in on the front end is 
> able to receive messages meant only for them sent by the back end.  I have 
> been trying to test it like this:
>
> >>> channel_layer = get_channel_layer()
> >>> async_to_sync(channel_layer.send)("user-notifications", {"type": 
> >>> "notification.handler", "text": "My Message"})
>
>
>
>
> Here's the traceback in the *runworker* output:
>
> 2018-02-25 02:34:14,002 - INFO - runworker - Running worker for channels 
> ['user-notifications']
> ERROR:root:Exception inside application: You must implement 
> application_send()
>   File 
> "/Users/muhammed/projects/xxx/lib/python3.6/site-packages/channels/consumer.py",
>  
> line 54, in __call__
> await await_many_dispatch([receive, self.

Simple Search Feature

2018-02-24 Thread tango ward
Hi,

I am playing around on adding a search feature to a website. I am currently
encountering a problem when the page should load a list of songs and after
typing in a song title in the search box:


views.py

class SongListView(ListView):
model = Song
context_object_name = 'songs'
template_name = 'songs/song_list.html'

def get(self, request, *args, **kwargs):

if request.method == 'GET':
song_name = request.GET.get('name', "Error")
songs = self.model.objects.filter(name__icontains=song_name)
else:
songs = self.models.all()
return render(request, self.template_name, {'songs': songs})

problem is when I click the search button with the text box empty, I am
getting the list of all the song (url: /songs/?name=) but if I just load
the page wihout clicking the submit button (url: /songs/), it doesn't give
me the list all the songs. The search box works if I type the correct song
name as it shows the song title.  Problem is the page should load all the
songs before I search a particular song.

Any suggestions so I can enhance my code?


Thanks,
Jarvis

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAA6wQLJ5bnMzR1etSRY191KL3fWkMpPsvhKnFBKtAuc1iLNKFg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Channels 2.0 - Exception when sending a message to client

2018-02-24 Thread muhammed
I'm still trying to find my way around channels 2.0, so I'm not sure if my 
implementation is incorrect or if this is a valid issue. I'm going to post 
as much info as possible in the hope that it will assist with finding the 
problem.

I have a single page app which opens a JS websocket connection - with 
channels 1 I used to add a *session_key *to the querystring and that used 
to handle the authentication.

I see this is no longer the case, so I now have a custom middleware class 
that sets the user object on the scope:

from django.contrib.sessions.models import Session

from users.models import User


class QueryAuthMiddleware:

def __init__(self, inner):
# Store the ASGI application we were passed
self.inner = inner

def __call__(self, scope):
# Look up user from query string (you should also do things like
# check it's a valid user ID, or if scope["user"] is already populated)
if scope.get("user", None) is None:
session_obj = 
Session.objects.get(session_key=scope["query_string"].decode("utf-8").split("=")[1])
session_decoded = session_obj.get_decoded()

scope["user"] = 
User.objects.get(id=session_decoded.get("_auth_user_id"))

# Return the inner application directly and let it run everything 
else
return self.inner(scope)




This is in turn added to my routing (channels.py):

from django.conf.urls import url
from django.conf import settings
from channels.routing import ProtocolTypeRouter, URLRouter, ChannelNameRouter

from notifications.consumer import TestWebsocketConsumer, TestConsumer
from notifications.middleware.query_auth_middleware import QueryAuthMiddleware

ROOT_PATH = "" if settings.DEBUG else "/ws/"


application = ProtocolTypeRouter({

"websocket": QueryAuthMiddleware(
URLRouter([
url(f"^{ROOT_PATH}(?P[-\w]+)/$", TestWebsocketConsumer),

])
),

"channel": ChannelNameRouter({
 "user-notifications": TestConsumer,
})


})





Here's my *consumers.py*:

from asgiref.sync import async_to_sync
from channels.consumer import SyncConsumer
from channels.generic.websocket import WebsocketConsumer


class TestWebsocketConsumer(WebsocketConsumer):
def websocket_connect(self, message):
async_to_sync(self.channel_layer.group_add)(str(self.scope["user"].id), 
"user-notifications")
self.connect()


class TestConsumer(SyncConsumer):
def notification_handler(self, message):

self.send(
{
 "type": "websocket.send",
 "text": message["text"]
}
)






The idea of the app is that each user that logs in on the front end is able 
to receive messages meant only for them sent by the back end.  I have been 
trying to test it like this:

>>> channel_layer = get_channel_layer()
>>> async_to_sync(channel_layer.send)("user-notifications", {"type": 
>>> "notification.handler", "text": "My Message"})




Here's the traceback in the *runworker* output:

2018-02-25 02:34:14,002 - INFO - runworker - Running worker for channels 
['user-notifications']
ERROR:root:Exception inside application: You must implement 
application_send()
  File 
"/Users/muhammed/projects/xxx/lib/python3.6/site-packages/channels/consumer.py",
 
line 54, in __call__
await await_many_dispatch([receive, self.channel_receive], 
self.dispatch)
  File 
"/Users/muhammed/projects/xxx/lib/python3.6/site-packages/channels/utils.py", 
line 48, in await_many_dispatch
await dispatch(result)
  File 
"/Users/muhammed/projects/xxx/lib/python3.6/site-packages/asgiref/sync.py", 
line 110, in __call__
return await asyncio.wait_for(future, timeout=None)
  File 
"/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/tasks.py",
 
line 333, in wait_for
return (yield from fut)
  File 
"/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/concurrent/futures/thread.py",
 
line 55, in run
result = self.fn(*self.args, **self.kwargs)
  File 
"/Users/muhammed/projects/xxx/lib/python3.6/site-packages/channels/db.py", 
line 13, in thread_handler
return super().thread_handler(loop, *args, **kwargs)
  File 
"/Users/muhammed/projects/xxx/lib/python3.6/site-packages/asgiref/sync.py", 
line 125, in thread_handler
return self.func(*args, **kwargs)
  File 
"/Users/muhammed/projects/xxx/lib/python3.6/site-packages/channels/consumer.py",
 
line 99, in dispatch
handler(message)
  File "/Users/muhammed/projects/xxx/my-app/app/notifications/consumer.py", 
line 18, in notification_handler
"text": message["text"]
  File 
"/Users/muhammed/projects/xxx/lib/python3.6/site-packages/channels/consumer.py",
 
line 107, in send
self.base_send(message)
  File 
"/Users/muhammed/projects/xxx/lib/python3.6/site-packages/asgiref/sync.py", 
line 64, in __call__
return call_result.result()
  File 
"/usr/local/Cellar/python3/3.6.1/Frameworks/Python.fr

Running polls tutorial, see the error message "The empty path didn't match any of these."

2018-02-24 Thread Chunjing Jia
Hi,

I am running Django 2.0 tutorial01 for polls. I am seeing this error 
message 

Using the URLconf defined in mysite.urls, Django tried these URL patterns, 
in this order:

   1. polls/
   2. admin/

The empty path didn't match any of these.

Without adding polls, my code works fine, and I can see the rocket and 
congratulation page. But after adding polls, I always get this error 
message. Even if I use the example code that I found from github with the 
all the correct setting... 

Does this mean that my installation for Python3 and Django 2.0 may be 
problematic? What other possibles error may be here? 

Thanks a lot!

Best,
CJ

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/7663c42a-06fc-4fc5-9604-dd92143c7ab3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: soy nuevo como inicio Django para desarollar con oracle

2018-02-24 Thread carlos
Hola, puedes escribir en español en google group de django en español
django...@googlegroups.com
a ver pra responder tu pregunta mira este doc
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/oow10/python_django/python_django.htm

saludos

On Fri, Feb 23, 2018 at 3:19 PM, Gerardo Palazuelos Guerrero <
gerardo.palazue...@gmail.com> wrote:

> hola Dimitri,
> Te sugiero, si puedes, que escribas en Inglés... casi no hay gente que
> responda en Español...
>
> Yo soy nuevo en Django también, y si lo eres tú, te sugiero iniciar el
> tutorial en el sitio de django ó el djangogirls
>
> Saludos,
> Gerardo
>
>
> --
> Gerardo Palazuelos Guerrero
>
>
> On Fri, Feb 23, 2018 at 1:00 PM, Dimitri Garcia 
> wrote:
>
>> soy nuevo como inicio Django para desarollar con oracle
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to django-users+unsubscr...@googlegroups.com.
>> To post to this group, send email to django-users@googlegroups.com.
>> Visit this group at https://groups.google.com/group/django-users.
>> To view this discussion on the web visit https://groups.google.com/d/ms
>> gid/django-users/b347e01a-b1f8-4169-a9fb-30868da5e965%40googlegroups.com
>> 
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/CAJ8iCyMDS93Z84DamCvPy8Vyw70jPdLCQ8oma%3DahsS4hBJ6Q9A%
> 40mail.gmail.com
> 
> .
>
> For more options, visit https://groups.google.com/d/optout.
>



-- 
att.
Carlos Rocha

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAM-7rO24zvznfePGeqz-qGFXG_21irHva3PZmksXcZTUnmYMiw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.