mysql - Multiple individual users on one database -
i have .sql database interact using django . database in beginning filled public data can accessed anynone. multiple individual users can add rows table(private data). how can user see changes made in database(private data)?
i assume you're using django.contrib.auth
. need like:
from django.contrib.auth.models import user # ... class privatedata(models.model): # ... private data fields ... user = models.foreignkey(user)
then can user's fields with:
privatedata.objects.filter(user=request.user)
edit: so, if users ip addresses, , you're not using login mechanism, don't need django.contrib.auth
... though it's have anyway since can use authenticate yourself , use built-in admin stuff manage site.
if want tie data ip addresses, set ipuser
model:
class ipuser(models.model): address = models.charfield(max_length=64, unique=true) # big enough ipv6 # add whatever other discrete (not list) data want store address. class privatedata(models.model): # ... private data fields ... user = models.foreignkey(ipuser)
the view function looks like:
def the_view(request): remoteaddr = request.meta['remote_addr'] try: theuser = ipuser.objects.get(address=remoteaddr) except ipuser.doesnotexist: theuser = ipuser.objects.create(address=remoteaddr) usermodifieddata = privatedata.objects.filter(user=theuser)
one thing note: when you're testing manage.py runserver
, you'll need specify ip address via environment variable:
$ remote_addr=127.0.0.1 manage.py runserver
when use django real web server apache, server set variable you.
there several ways optimize this, should started.
Comments
Post a Comment