python - ManyToMany relationship in django models -


i'm trying add relation between 3 table manytomany relationship. i'm learning python , new django framework. requirement, user can add project , can add permission view user. means user can have multiple projects , project have multiple user. user model default user model of django.

and project model is:

projects/model.py

from django.db import models django.contrib.auth.models import user # create models here.   class projects(models.model):     project_title = models.charfield(max_length=255)     description = models.textfield(blank=true)     privacy = models.smallintegerfield(default=1) # 1 public, 2 private     status = models.smallintegerfield(default=1) #1 active, 2 deactive, 3 delete, 4 depricated     created_at = models.datetimefield('date published', blank=true, default=false)     users = models.manytomanyfield(user, through="userprojects")  class userprojects(models.model):     user = models.foreignkey(user,blank=true, default=false)     project = models.foreignkey(projects,blank=true)     owner = models.smallintegerfield(default=1) 

it's not working. when i'm add project produce error..

traceback (most recent call last):   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\core\handlers\exception.py", line 41, in inner     response = get_response(request)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\core\handlers\base.py", line 187, in _get_response     response = self.process_exception_by_middleware(e, request)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\core\handlers\base.py", line 185, in _get_response     response = wrapped_callback(request, *callback_args, **callback_kwargs)   file "e:\programs\python\restclient\projects\views.py", line 29, in add     p.save()   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\base.py", line 806, in save     force_update=force_update, update_fields=update_fields)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\base.py", line 836, in save_base     updated = self._save_table(raw, cls, force_insert, force_update, using, upda te_fields)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\base.py", line 922, in _save_table     result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\base.py", line 961, in _do_insert     using=using, raw=raw)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\manager.py", line 85, in manager_method     return getattr(self.get_queryset(), name)(*args, **kwargs)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\query.py", line 1063, in _insert     return query.get_compiler(using=using).execute_sql(return_id)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\sql\compiler.py", line 1098, in execute_sql     sql, params in self.as_sql():   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\sql\compiler.py", line 1051, in as_sql     obj in self.query.objs   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\sql\compiler.py", line 1051, in <listcomp>     obj in self.query.objs   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\sql\compiler.py", line 1050, in <listcomp>     [self.prepare_value(field, self.pre_save_val(field, obj)) field in field s]   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\sql\compiler.py", line 990, in prepare_value     value = field.get_db_prep_save(value, connection=self.connection)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\fields\__init__.py", line 770, in get_db_prep_save     prepared=false)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\fields\__init__.py", line 1459, in get_db_prep_value     value = self.get_prep_value(value)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\fields\__init__.py", line 1438, in get_prep_value     value = super(datetimefield, self).get_prep_value(value)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\fields\__init__.py", line 1296, in get_prep_value     return self.to_python(value)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\db\models\fields\__init__.py", line 1399, in to_python     parsed = parse_datetime(value)   file "c:\users\jitendra\appdata\local\programs\python\python35-32\lib\site-pac kages\django\utils\dateparse.py", line 94, in parse_datetime     match = datetime_re.match(value) typeerror: expected string or bytes-like object [28/jul/2017 22:25:10] "post /projects/add/ http/1.1" 500 145532 

and here projects/view.py

def add(request):     form = projectform()     if request.method == "post":         form = projectform(request.post)         if form.is_valid():             p = projects(project_title=request.post.get("project_title"), description=request.post.get("description"),                          status=1, privacy=1)             p.save()             sp = userprojects(user_id=request.user.id, project_id=p.id)             sp.save()             p.users.add(sp)             messages.success(request, 'profile details updated.')      view_data = {         "form": form,         'title': "add new project"     }     return render(request, 'projects/add.html', view_data) 

i dont know, whats wrong it. please guide me. thanks

from django docs:

class datetimefield(**kwargs)

default widget: datetimeinput

empty value: none

normalizes to: python datetime.datetime object.

validates given value either datetime.datetime, datetime.date or string formatted in particular datetime format.

error message keys: required, invalid

you can read datetimefield validates given value either datetime.datetime, datetime.date or string formatted in particular datetime format, set default=false in model definitions. guess problem lays in there.


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -