|
1 | 1 | from django.test import TestCase
|
2 | 2 |
|
| 3 | +from django_mongodb_backend.forms import EmbeddedModelArrayField |
| 4 | + |
3 | 5 | from .forms import MovieForm
|
4 | 6 | from .models import Movie, Review
|
5 | 7 |
|
@@ -409,3 +411,65 @@ def test_rendering_initial(self):
|
409 | 411 | id="id_reviews-MIN_NUM_FORMS"><input type="hidden"
|
410 | 412 | name="reviews-MAX_NUM_FORMS" value="1000" id="id_reviews-MAX_NUM_FORMS">""",
|
411 | 413 | )
|
| 414 | + |
| 415 | + def test_extra_forms(self): |
| 416 | + """The extra_forms argument specifies the number of extra forms.""" |
| 417 | + |
| 418 | + class ExtraMovieForm(MovieForm): |
| 419 | + reviews = EmbeddedModelArrayField(Review, prefix="reviews", extra_forms=2) |
| 420 | + |
| 421 | + form = ExtraMovieForm() |
| 422 | + self.assertHTMLEqual( |
| 423 | + str(form.fields["reviews"].get_bound_field(form, "reviews")), |
| 424 | + """ |
| 425 | + <table> |
| 426 | + <tbody> |
| 427 | + <tr> |
| 428 | + <th><label for="id_reviews-0-title">Title:</label></th> |
| 429 | + <td> |
| 430 | + <input type="text" name="reviews-0-title" maxlength="255" |
| 431 | + id="id_reviews-0-title"> |
| 432 | + </td> |
| 433 | + </tr> |
| 434 | + <tr> |
| 435 | + <th><label for="id_reviews-0-rating">Rating:</label></th> |
| 436 | + <td> |
| 437 | + <input type="number" name="reviews-0-rating" id="id_reviews-0-rating"> |
| 438 | + </td> |
| 439 | + </tr> |
| 440 | + <tr> |
| 441 | + <th><label for="id_reviews-0-DELETE">Delete:</label></th> |
| 442 | + <td> |
| 443 | + <input type="checkbox" name="reviews-0-DELETE" id="id_reviews-0-DELETE"> |
| 444 | + </td> |
| 445 | + </tr> |
| 446 | + </tbody> |
| 447 | + <tbody> |
| 448 | + <tr> |
| 449 | + <th><label for="id_reviews-1-title">Title:</label></th> |
| 450 | + <td> |
| 451 | + <input type="text" name="reviews-1-title" maxlength="255" id="id_reviews-1-title"> |
| 452 | + </td> |
| 453 | + </tr> |
| 454 | + <tr> |
| 455 | + <th><label for="id_reviews-1-rating">Rating:</label></th> |
| 456 | + <td> |
| 457 | + <input type="number" name="reviews-1-rating" id="id_reviews-1-rating"> |
| 458 | + </td> |
| 459 | + </tr> |
| 460 | + <tr> |
| 461 | + <th><label for="id_reviews-1-DELETE">Delete:</label></th> |
| 462 | + <td> |
| 463 | + <input type="checkbox" name="reviews-1-DELETE" id="id_reviews-1-DELETE"> |
| 464 | + </td> |
| 465 | + </tr> |
| 466 | + </tbody> |
| 467 | + </table> |
| 468 | + <input type="hidden" name="reviews-TOTAL_FORMS" value="2" |
| 469 | + id="id_reviews-TOTAL_FORMS"><input type="hidden" |
| 470 | + name="reviews-INITIAL_FORMS" value="0" |
| 471 | + id="id_reviews-INITIAL_FORMS"> |
| 472 | + <input type="hidden" name="reviews-MIN_NUM_FORMS" value="0" |
| 473 | + id="id_reviews-MIN_NUM_FORMS"><input type="hidden" |
| 474 | + name="reviews-MAX_NUM_FORMS" value="1000" id="id_reviews-MAX_NUM_FORMS">""", |
| 475 | + ) |
0 commit comments