0

I want to save the database attendance data daily of each user,

but my no error no saved why? please help me this is my full code below:

this is my views.py:

def staffs(request):
    args = {}
    args.update(csrf(request))
    args['staffs'] = User.objects.all()
    return render_to_response("staffs.html", args)

def staffdetail(request, user_id=1):
    user = get_object_or_404(User, pk=user_id)
    return render_to_response("staffdetail.html",
                         {"user": User.objects.get(id=user_id) })

def attendance(request, user_id):
    if request.method == "POST":
        attendance = Attendance_data(user = request.user.id)
        form = AttendancekForm(request.POST, instance = attendance)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/articles/get/%s' % user.id)
    else:
        form = AttendanceForm()
    return render_to_response('attendance.html', context_instance = RequestContext(request, {'form': form}))

def leave_work(request, user_id):
    if request.method == "POST":
        leave_work = Leave_work(user = request.user.id)
        form = Leave_workForm(request.POST, instance = leave_work)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/articles/get/%s' % user.id)
    else:
        form = Leave_workForm()
    return render_to_response('leave.html', context_instance = RequestContext(request, {'form': form}))

So,i'm also add my models.py and forms.py here this is my models.py:

class User(models.Model):
    user_name = models.CharField(max_length=255)
    first_kana = models.CharField(max_length=255)
    last_kana  = models.CharField(max_length=255)
    employee_number = models.CharField(blank=True, max_length=22)
    created_at = models.DateTimeField(auto_now_add=True)

    def __unicode__(self):
        return self.user_name

class Attendance_data(models.Model):
    user_name = models.CharField(max_length=255)
    employee_number = models.CharField(blank=True)

    def __unicode__(self):
        return self.user_name, employee_number

class Leave_work(models.Model):
    user_name = models.CharField(max_length=255)
    employee_number = models.CharField(blank=True, max_length=22)

    def __unicode__(self):
        return self.user_name, employee_unmber

this is my forms.py:

class ArticleForm(forms.ModelForm):

    class Meta:
        model = User
        fields = ('user_name','first_kana', 'last_kana', 'employee_number')
    user_name = forms.CharField( label="name",error_messages={'required': ''})
    first_kana = forms.CharField(label="firstname",error_messages={'required': ''})
    last_kana = forms.CharField(label="lastname",error_messages={'required': ''})
    employee_number = forms.CharField(label="number", required=False)

class Attendance_dataForm(forms.ModelForm):

    class Meta:
        model = Attendance_data
        fields = ('user_name','employee_number')

    user_name = forms.CharField(label="name", error_messages={'required': ''})
    employee_number = forms.CharField(label="number",error_messages={'required': ''})

class Leave_workForm(forms.ModelForm):

    class Meta:
        model = Leave_work
        fields = ('user_name', 'employee_number')
    user_name = forms.CharField(label="name", error_messages={'required': ''})
    employee_number = forms.CharField(label="number", error_messages={'required': ''})
1
  • 2
    post your error what you facing ? Commented Apr 25, 2014 at 4:03

1 Answer 1

1

You are doing a lot of wrong thing in your views. If you look at your model Attendence_data, it has two fields user_name and employee_number. so its constructor would accept two arguments, user_name and employee_number or any other fields that are set not to be NULL and have no default value, so passing request.user.id to the its constructor would not make it a valid object. Same is the case with Leave_work model. So if you need to do this, you need to overload the default constructor. But seems like you are not being able to understand the basic concepts of how Django works so I'd suggest you to go trough this tutorial as this will clear a lot of basic concepts.

Sign up to request clarification or add additional context in comments.

5 Comments

and what is the argument work that you are passing to the instance parameter of the AttendenceForm constructor.
I don't know should I write way
>>form = AttendancekForm(request.POST, instance = work) this is a mistake to write, It was corrected to attendance, but can not be saved
And also the the code that defines the AttendenceForm
This is the tutorial link: docs.djangoproject.com/en/dev/intro/tutorial01 that @Darwesh mentioned.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.