tags:

views:

151

answers:

3

I built a a.py in my mysite file,

a.py:

from django.core.management import setup_environ
from mysite import settings

setup_environ(settings)

from django.contrib.sites.models import Site
domain = Site.objects.get_current().domain
print domain

It prints:

:example.com

How do I change the 'domain' to 127.0.0.1:8000?

+4  A: 

Go to the Site model in the admin interface and change the value there. Or do a query on Site at the Django prompt and modify and save the model.

Ignacio Vazquez-Abrams
hi Ignacio,see http://stackoverflow.com/questions/2107456/how-do-i-change-example-com-in-my-code/2107649#2107649
zjm1126
A: 
from django.core.management import setup_environ
from register import settings
setup_environ(settings)


from django.contrib.sites.models import Site
#domain = Site.objects.get_current().domain
#print domain

from django.contrib.auth.models import User 
obj=Site.objects.get(id=1).update(name='sss')
print obj

error:

Traceback (most recent call last):
  File "D:\zjm_code\register\a.py", line 13, in <module>
    obj=Site.objects.get(id=1).update(name='sss')
AttributeError: 'Site' object has no attribute 'update'
zjm1126
You can't call `.update()` on `.get()`: `.get()` returns a model instance, not a queryset. Try using `.filter()` instead of get, eg: `Site.objects.filter(id=1).update(name="sss", domain="zjm1126.com")`
Will Hardy
+1  A: 

Like whrd commented, you can't call update(...) on the result of calling get(...) on a QuerySet. A better way of changing your code is as follows:

from django.core.management import setup_environ
from register import settings
setup_environ(settings)

from django.contrib.sites.models import Site

obj=Site.objects.get(id=1)
obj.name='sss'
obj.save()
print obj
Dominic Rodger